2.3.2 socket工作原理
套接口是从英文单词socket 翻译过来的,它是网络通信的基本构件。套接口是可以被命名和寻址的通信端点,使用中的每一个套接字都有它的类型和一个与之相连的进程。套接口存在于通信区域中。通信区域也叫地址族,它是一个抽象的概念,主要用于将通过套接口通信的进程的共有特性综合在一起。套接口通常和同一个域中的套接口交换数据,数据交换也可能穿越域的界限,但这时一定要执行某种解释程序。Windows Sockets 规范支持单一的通讯域即Internet 域。各种进程使用这个域互相之间用Internet 协议族来进行通讯Windows Sockets 1.1 以上的版本支持其他的域,例如Windows Sockets 2。套接口可以根据通讯性质分类这种性质对于用户是可见的。应用程序一般仅在同一类的套接口间通讯。不过只要底层的通讯协议允许不同类型的套接口间也照样可以通讯[10]。
用户目前可以使用两种套接口即流套接口和数据报套接口。流套接口提供了双向的有序的无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流但并不保证是可靠有序无重复的。也就是说一个从数据报套接口接收信息的进程有可能发现信息重复了或者和发出时的顺序不同。数据报套接口的一个重要特点是它保留了记录边界。对于这一特点数据报套接口采用了与现在许多包交换网络例如以太网非常类似的模型。
socket工作过程图2.2所示: 基于WINCE的网络服务器的设计与实现(5):http://www.youerw.com/zidonghua/lunwen_7872.html