1、socket的位置:为应用层提供的抽象层;Socket由ip:协议:port组成;
在linux中“一切皆文件” ,Socket的操作抽象为socket(开)、read/write、close;
2、S端:fd=Socket()建立抽象文件socket、bind()绑带端口、listen()开始监听;
C端:fd=Socket(),connect()分配port,通过3次握手建立连接, S端accept()响应C端connect(),S端建立对应的socket;
3、read/write、recvmsg/sendmsg通过Tcp的窗口机制进行C-S端数据交互;
4、4次握手释放连接
5、优化keep-alive:节省耗时的3次握手建立连接与4次握手释放连接的时间;
C端:http的connection在http 1.1中自动支持;一次交互后不要close();?
S端:一次交互后不要close();?
参考:
http://www.cnblogs.com/goodcandle/archive/2005/12/10/socket.html
http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html