黑莓核心开发向导 - 2.2.3 使用套接字连接
2009-11-11 17:12
204 查看
虽然你可以通过套接字连接来实现HTTP,但由于如下原因,你应该使用HTTP连接:
> 套接字连接不支持黑莓移动数据系统(MDS)的特色功能,例如推送.
> 使用套接字连接的黑莓设备应用程序通常比使用HTTP连接的黑莓设备应用程序需要更多的带宽
BlackBerry® device applications that use socket connections typically require significantly more bandwidth than BlackBerry device applications that use HTTP connections.
1. 导入如下类:
* net.rim.device.api.system.CoverageInfo
* javax.microedition.io.Connector
* java.lang.String
* java.io.OutputStreamWriter
* java.io.InputStreamReader
2. 导入如下接口:
* net.rim.device.api.system.CoverageStatusListener
* javax.microedition.io.StreamConnection
3. 使用net.rim.device.api.system包中的CoverageInfo类和CoverageStatusListener接口来确认黑莓设备在无线网络覆盖区域内。
4. 调用Connector.open(),指定socket为协议,并将参数deviceside=false附在URL的末端
* 为使用黑莓MDS服务打开套接字连接,将deviceside=false附于URL末端。黑莓设备应用程序必须明确的输入本地主机IP,因为localhost是不被支持的。
private static String URL = "socket://local_machine_IP:4444;deviceside=false";
StreamConnection conn = null;
conn = (StreamConnection)Connector.open(URL);
* 为通过直接TCP来打开套接字连接,将参数deviceside=true附于URL末端。
private static String URL = "socket://local_machine_IP:4444;deviceside=true";
StreamConnection conn = null;
conn = (StreamConnection)Connector.open(URL);
* 为通过直接TCP来打开套接字连接,指定APN信息,将参数deviceside=true附于URL末端,并指定将在其之上建立连接的APN。指定链接到APN的用户名和密码(如果APN需要密码)。
private static String URL = "socket:
//local_machine_IP:4444;deviceside=true;apn=internet.com;tunnelauthusername =user165;tunnelauthpassword=user165password";
StreamConnection conn = null;
conn = (StreamConnection)Connector.open(URL);
5. 使用 openInputStream() 和 openOutputStream() 来发送和接受数据。
OutputStreamWriter _out = new OutputStreamWriter(conn.openOutputStream());
String data = "This is a test";
int length = data.length();
_out.write(data, 0, length);
InputStreamReader _in = new InputStreamReader(conn.openInputStream());
char[] input = new char[length];
for ( int i = 0; i < length; ++i ) {
input[i] = (char)_in.read();
};
6. 在输入流、输出流和套接字连接上调用close()。每个close()都可能抛出IOException。确保黑莓设备应用程序实现了异常处理。
_in.close();
_out.close();
conn.close();
> 套接字连接不支持黑莓移动数据系统(MDS)的特色功能,例如推送.
> 使用套接字连接的黑莓设备应用程序通常比使用HTTP连接的黑莓设备应用程序需要更多的带宽
BlackBerry® device applications that use socket connections typically require significantly more bandwidth than BlackBerry device applications that use HTTP connections.
1. 导入如下类:
* net.rim.device.api.system.CoverageInfo
* javax.microedition.io.Connector
* java.lang.String
* java.io.OutputStreamWriter
* java.io.InputStreamReader
2. 导入如下接口:
* net.rim.device.api.system.CoverageStatusListener
* javax.microedition.io.StreamConnection
3. 使用net.rim.device.api.system包中的CoverageInfo类和CoverageStatusListener接口来确认黑莓设备在无线网络覆盖区域内。
4. 调用Connector.open(),指定socket为协议,并将参数deviceside=false附在URL的末端
* 为使用黑莓MDS服务打开套接字连接,将deviceside=false附于URL末端。黑莓设备应用程序必须明确的输入本地主机IP,因为localhost是不被支持的。
private static String URL = "socket://local_machine_IP:4444;deviceside=false";
StreamConnection conn = null;
conn = (StreamConnection)Connector.open(URL);
* 为通过直接TCP来打开套接字连接,将参数deviceside=true附于URL末端。
private static String URL = "socket://local_machine_IP:4444;deviceside=true";
StreamConnection conn = null;
conn = (StreamConnection)Connector.open(URL);
* 为通过直接TCP来打开套接字连接,指定APN信息,将参数deviceside=true附于URL末端,并指定将在其之上建立连接的APN。指定链接到APN的用户名和密码(如果APN需要密码)。
private static String URL = "socket:
//local_machine_IP:4444;deviceside=true;apn=internet.com;tunnelauthusername =user165;tunnelauthpassword=user165password";
StreamConnection conn = null;
conn = (StreamConnection)Connector.open(URL);
5. 使用 openInputStream() 和 openOutputStream() 来发送和接受数据。
OutputStreamWriter _out = new OutputStreamWriter(conn.openOutputStream());
String data = "This is a test";
int length = data.length();
_out.write(data, 0, length);
InputStreamReader _in = new InputStreamReader(conn.openInputStream());
char[] input = new char[length];
for ( int i = 0; i < length; ++i ) {
input[i] = (char)_in.read();
};
6. 在输入流、输出流和套接字连接上调用close()。每个close()都可能抛出IOException。确保黑莓设备应用程序实现了异常处理。
_in.close();
_out.close();
conn.close();
相关文章推荐
- 黑莓核心开发向导 - 2.2.5 使用USB或串口连接
- 黑莓核心开发向导 - 2.2.2 使用HTTPS连接
- 黑莓核心开发向导 - 2.2.4 使用数据报连接
- 黑莓核心开发向导 - 2.2.1 使用HTTP认证
- 使用Eclipse-Maven-git做Java开发(8)--eclipse向导新建maven工程
- WCF分布式开发常见错误(10):套接字连接中断,The socket connection was aborted
- unity深入研究--开发之C#使用Socket与HTTP连接服务器传输数据包
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA应用中使用IOC解偶数据连接环境
- Sailfish应用开发入门(三)使用Puty、WinSCP连接Sailfish Emulator和MerSDK VM
- 三体争霸网络游戏开发之一:redis下载连接使用
- VS中使用Entity Framework连接Mysql,添加Entity Data Model时向导闪退解决方案
- 使用EGL服务向导快速开发数据库访问服务
- Windows上使用Eclipse远程连接Hadoop进行程序开发
- basic4android 开发教程翻译(六)使用B4A-Bridge连接你的设备
- node.js开发之express4.0使用mongoose连接mongodb
- 使用C#调用PI-SDK进行基于PI的开发——使用PI-SDK建立与PI数据库的连接(转载)
- JAVAWEB开发之Hibernate详解(一)——Hibernate的框架概述、开发流程、CURD操作和核心配置与API以及Hibernate日志的使用
- android开发(12) 使用无线网络和切换到GPRS连接
- eclipse开发工具动态网站项目使用jdbc连接数据库
- Objective-C ,ios,iphone开发基础:使用第三方库FMDB连接sqlite3 数据库,实现简单的登录