发表于2008年08月02日 00:28 阅读(8) 评论(0)
在Unix操作系统中,几乎任何东西(磁盘,用户终端,网络连接)都可以用一个文件描述符来表示,这种统一性使得Unix程序员可以写出设备无关的应用程序。
Socket也是一个文件描述符,只不过这个文件描述符表示的是网络,应用程序对于这个描述符的读写就是对网络数据的读写。
在建立一个Socket的时候,可以把它绑定到一个网络地址上的一个端口,一旦绑定成功,应用程序就可以用这个Socket来传送和接收数据了。

应用程序可以选择用TCP还是UDP连接,TCP可靠建立连接,UDP不可靠不建连接。
2.1 面向连接的套接字的系统调用时序图

2.2 无连接协议的套接字调用时序图

2.3 面向连接的应用程序流程图

//图片来自:http://www.vckbase.com/document/viewdoc/?id=484