HTTPS是互联网电子商务等服务中使用的一种“安全HTTP”,各种MIDP 2.0实现一定支持HTTPS。诺基亚论坛会今后的文档会涉及到HTTPS。
TCP
传输控制协议(Transmission Control Protocol ,TCP)是互联网的基本协议之一。这是一种可靠的,面向连接的协议,这意味着:
• 所发送的数据总是能以正确顺序被一次性接收,并无出错(除非连接最终失败)。
• 连接是建立在两台正在通讯的设备上的,并在通讯期间一直保持连接状态。
通常我们把TCP连接比作两台正在通讯的设备之间的电话呼叫。在互联网上,HTTP通常以TCP实现。
“套接字(socket)”是指某个TCP连接的一个端点。某台TCP服务器上的一个“服务器套接字(socket)”接受新的连接请求,并为每个请求创建一个新的套接字。由于TCP的可靠性,程序设计常常得到大幅度的简化;然而,如果是在一个不太可靠的网络上使用,则它的表现可能会比用户数据报协议(User Datagram Protocol ,UDP,见下文)更差。如果丢了一个包,TCP会尝试重新发送,而且在这个丢失的包被重发成功之前不会发送后续包。如果你不需要这种可靠的重发功能,就会发现:UDP更为合适。
MIDP 1.0不包括对TCP的支持。MIDP 2.0规定了对TCP的支持,但却能让制造商自己来选择是否包含这种支持。
UDP
用户数据报协议(User Datagram Protocol,UDP)是互联网的另一个基本协议,这是一种不太可靠的、面向数据包的协议,即:
• 发送的数据包可以被接收一次,也可以被接收多次,或者从来不被接收,甚至以错误的顺序被接收。
• 正在通讯的设备之间没有连接:每个数据包都是独立编址的。
这里,我们常把UDP比作信件邮递,两台正在通讯的设备间所发送的数据包就好像信件或明信片。数据报(datagram)这一术语就是指数据包(data packet)。
UDP对通讯所增加的系统开销很少,总体上是一种效率最高的网络技术。许多应用并不需要TCP的可靠性,例如,如果数据对时效性有较高要求,象视频流技术中,丢一个包要比试图重发当时已经过时的包,从而挂起后续的包,要好得多。
UDP或TCP,哪个更适合于游戏?这引起了广泛的争论。由于移动网络较长的延迟时间,我们更倾向于强调这两者之间的差异。多人 MIDP 游戏编程 两种常用解决方案是:
• 两种都用 – UDP数据报用于那些可靠性要求不高的消息,而TCP连接则用于那些可靠性要求较高的消息。
• 只使用UDP协议,但在协议顶层部署一个较薄的层,允许可靠地发送一些消息,而不太可靠地发送另一些消息。
当在诸如GPRS这样的分组交换协议上实现时,游戏所发送的少量数据对移动UDP网络来说开销并不十分大。考虑到移动网络的响应时间,包的发送量一般并不需要超过每秒钟一个。如果你以这样的频率发送包,请注意它们的大小,同时不要发送不必要的包。
MIDP 1.0中并不包括对UCP的支持。MIDP 2.0规定了对UCP的支持,但却可以由制造商来选择是否包括这种支持。
蓝牙
蓝牙是一种短程无线电技术,它支持约10米范围内最多八台设备一起通讯。蓝牙的响应时间很短,非常适合于多人游戏 – 它已经被广泛地应用于诺基亚N-Gage 移动游戏机上的各种多人游戏。因为蓝牙是向各个方向传输的,所以电话不必彼此正对。
在MIDP电话中,可能会用可选包中的蓝牙Java API 集[JSR-82]来支持蓝牙。