当前位置:主页   - 电脑 - 程序设计 - JAVA
Java ME应用设计指南之多网络连接
来源:网络   作者:   更新时间:2012-06-10
收藏此页】    【字号    】    【打印】    【关闭

  有些设备并不允许同时打开多个网络连接,但是有的时候我们的应用程序可能需要同时打开多个连接。这样可以提高效率或者用户体验,但是应用程序应该尽量避免依赖多连接这一特性,因为对于不支持多个连接的设备你的程序可能会崩溃。

  解决这一问题的办法是在JAD文件中标记出设备能够同时打开的连接数量。

  那么如何能够得到设备支持的最大的连接数的,首先你可以去参考设备的规范。比如Motorola的设备规范中一般都列出了能够支持的连接类型,比如HTTP Socket等。以及设备能够同时打开的最大连接数。对于在规范中没有说明的那么我们只能编写一个测试用的MIDlet,先测试出这个特性。然后把他写到JAD文件中供以后使用。

  例如下面的JAD文件中就标记了最大连接的数量。

MIDlet-1: Foo, , Foo
MIDlet-Jar-Size: 7063
MIDlet-Jar-URL: foo.jar
MIDlet-Name: Foo
MIDlet-Vendor: Yoyodyne Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
Device-Max-Connection: 3

  在应用程序初始化的时候可以读取这个数量,注意这个数量应该存储为全局变量,这样方便在人的地方访问。初始化的工作如下,

  /* Initialization code */
  String deviceMaxConnectionString = getAppProperty
("Device-Max-Connection");
  int deviceMaxConnection = Integer.parseInt
(deviceMaxConnectionString);
  int openConnection = 0;
同时创建多个网路连接,如下:
  if (openConnection < deviceMaxConnection) {
    HttpConnection connection = (HttpConnection) Connector.open
(uri);
    openConnection++;
  } else {
    // Fail to create connection.
  }

  关闭网络连接

  connection.close();   openConnection--;

  计算连接的数量,

  int connection = 0;
try {
while (true) {
Connector.open("http://tools.ietf.org/html/rfc262"
+ connection);
}
} catch (Exception e) {
// Max number reached here
}

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明