专注于Blackberry

BlackBerry 应用程序开发者指南 第一卷:基础–第7章 使用数据报(Datagram)连接

7         第7章 使用数据报(Datagram)连接 数据报连接 使用UDP连接 使用Mobitex网络 发送和接收短消息(SMS) 数据报连接 通过利用UDP(User Datagram Protocal,用户数据报协议),BlackBerry设备支持数据报连接。应用程序使用UDP和标准的网络服务通信。 数据报是应用程序发送到网络的独立数据包。对于Datagram的负载字节数组来说,一个Datagram对象是一个包装器。为获得这个字节数组的一个引用,调用getData()方法。 和HTTP连接不一样,数据报连接不稳定:数据包以任意的顺序到达,并且传输得不到保证。应用程序的责任是确保请求数据报的数据负载根据网络服务的标准来格式化,这个标准是在数据报传播上的。应用程序也必须能解析从服务器返回发送的数据报。 使用数据报连接来发送短消息。为获得更多信息,参看121页的“发送和接受SMS”。 使用UDP连接 为使用UDP连接,你必须有一个你自己的基础设施来连接无线网络,包括一个GPRS(General Packet Radio Service,通用分组无线业务)网络的APN(Access Point Name)。 注:数据报连接没有使用BlackBerry的基础设施,因此连接没有加密。模拟器的APN是net.rim.gprs. javax.microedition.io.DatagramConnection接口,扩展了Connection类,它定义了发送和接受数据报的连接。Datagram接口定义了在数据报连接上发送和接受的数据包。 注:使用UDP连接需要你和服务商紧密联系。联系你的服务商确认UDP连接是否支持。     如果你的服务商不支持多个PDP上下文,那么你可能没有建立一个UDP连接。一个PDP上下文为发送消息的BlackBerry.net.APN保留。尽管如此,你可以为UDP使用blackberry.net 当作APN。联系你的服务商以获得更多信息。 获得一个数据报连接 使用下面的格式调用Connector.open().指定udp为你的协议。将返回的对象转化为一个DatagramConnection。 (DatagramConnection)Connector. open("udp://host:dest_port[;src_port]/apn"); 参数 描述 host 指定点阵ASCII十进制格式的主机地址 dest_port 指定了主机地址的目标端口(接受信息时是可选的)。 src_port 指定本地源端口(可选)。 apn 指定字符串形式的网络APN。 注:可以在相同的端口上收发UDP数据报。 为了在UDP连接上发送数据,在连接字符串里指定目标端口。为了在UDP连接上接收数据,在连接字符串里指定源端口。为了接收指定主机的所有端口上的数据报,省略目标端口。 注:为了在一个非GPRS的网络里打开一个连接,不要指定APN。在源端口后包含斜线”/”.例如CDMA网络连接的地址应该是udp://121.0.0.0:6343/. 创建一个数据报 调用DatagramConnection.newDatagram(). Datagram outDatagram = conn.newDatagram(buf, buf.length); 将数据加入到数据报中 调用Datagram.setData().数据的格式由接收它的服务决定。 byte[] [...]

继续阅读本文 →

Taigoo发表于 April 23, 2008 6:34 am | 留言 |文档 

BlackBerry 应用程序开发者指南 第一卷:基础–第6章 连接网络

6 第6章 连接网络 HTTP和socket连接 使用HTTP连接 使用HTTPS连接 使用socket连接 使用端口(port)连接 使用蓝牙序列端口连接 HTTP和Socket连接 尽管你可以通过socket连接实现HTTP,但是最好使用HTTP连接,因为socket连接不支持BlackBerry MDS服务特性,例如push。也最好使用HTTP连接,因为比起那些使用HTTP连接的应用程序,使用socket连接的应用程序明显需要更多的带宽。 注:如果你使用socket连接,将你的应用程序设计为适应断断续续的无线网络连接。例如,如果你的程序发生错误时,它会重新打开连接。 使用HTTP连接 注:使用BlackBerry Internet Service Browser的java程序不会启动HTTP,HTTPS和TCP连接。 打开一个HTTP连接 为了打开一个HTTP连接,调用Connector.open(),指定http为协议。将返回的对象转化为一个HTTPConnection或者StreamConnection对象。HttpConnection是一个StreamConnection,它提供访问指定HTTP功能,包括HTTP头和其他HTTP资源。 HttpConnection conn = null; String URL = "http://www.myServer.com/myContent"; conn = (HttpConnection)Connector.open(URL); 设置HTTP请求方式 为设置HTTP请求方式(GET或POST),调用HttpConnection.setRequestMethod(). conn.setRequestMethod(HttpConnection.POST); 设置或获取头字段 为HTTP请求或HTTP响应消息设置或获取头字段,调用HttpConnection 上的getRequestProperty() 或setRequestProperty()。 conn.setRequestProperty("User-Agent", "BlackBerry/3.2.1"); String lang = conn.getRequestProperty("Content-Language"); 发送和接受数据 为发送和接受数据,调用HTTPConnection的openInputStream()和openOutputStream()获得输入和输出流。 InputStream in = conn.openInputStream(); OutputStream out = conn.openOutputStream(); 代码实例 [...]

继续阅读本文 →

Taigoo发表于 April 22, 2008 10:09 pm | 留言(1) |文档