Total Pageviews

Thursday 22 March 2012

MIDP网络编程之协议篇

首先需要明确,这里协议的概念具有通用性,不仅仅是MIDP编程中的概念。
    MIDP网络编程原理与其它网络编程基本一样:建立连接,互通数据。连接是网络的核心,因为连接而形成网络。根据传输协议的不同,连接大致分为三 种,HTTP连接,Socket连接,Datagram连接。那么什么是协议呢?打个比方说,两个人只有彼此懂得对方的语言及习俗才能互相交流。网络通信 也有它的语言和约定,这便是协议。
     MIDP网络编程有三个相关的协议。HTTP连接的HTTP/HTTPS,Socket连接的TCP以及Datagrame连接的UDP。明确了这些协议的基本概念,编程时会做到心中有数。因为在使用相关的API编程时,我们就是在模拟这些相关的情景!
    协议是分层的,这说得有点模糊但很直白。这得从网络体系的分层结构说起。OSI网络体系结构定义计算机网络的分层、各层协议和层间接口的集合,我们不管 他!我们需要了解TCP/IP体系结构,它是用于Internet的第一套协议,将OSI简化成四层。由下至上分别是通信子网层、网络层、传输层和应用 层。TCP和UDP是传输层的协议,而HTTP/HTTPS属应用层。低层协议为相邻的高层协议提供相应服务,高层协议作为低层的用户而存在,即高层调用 低层提供的服务才能工作。因此MIDP网络编程中涉及的协议其地位不是对等的。
    HTTP协议基于请求/响应的机制。在客户端与服务器端建立连接后,客户端发送请求,服务器端响应请求,最后关闭连接。
    TCP协议是面向连接的,什么意思呢?这就跟我们打电话一样。双方在通信时建立了可靠的连接,因而Socket连接保证了传输的质量。因为一旦连接发生中断,用户马上能发现并采取相应措施。
    Datagram连接采用的UDP协议是不可靠的。因为UDP是无连接的,通信双方无需事先建立连接。在使用Socket连接时需要在发送方和接受方间建 立一个连接,让数据在这个连接中进行传送,这样不需指明消息的发送方向。而UDP显然需要消息必须包含完整的目的地址。无连接方式不需要接受方的应答和确 认,因此不能防止消息的丢失、重复或失序等错误。但它有自己的优点:处理开销小,发送信息快,适合实时数据的处理和传输。另外,UDP可以接受不同方向的 消息,而Socket只能接收一个方向的消息。总之,把UDP想成发邮件,TCP想成打电话,上面说的一切都易于理解,不是吗?
   上面的每种协议的工作机理都体现在实际的编程中。

No comments:

Post a Comment