socket

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

原文地址:https://www.cnblogs.com/toven/p/2669316.html