流socket形参type值为SOCK_STREAM,使用的网络协议是TCP协议(传输控制协议),其流程是客户建立socket,通过connect与服务器连接,read和write传送数据。在服务器端先建立连接,向内核申请socket,返回socket标识符,调用bind,将目标地址分配给socket,listen请求内核允许socket接入呼叫,accept接受呼叫,read和write传送呼叫。
数据报socket形参type值为SOCK_DGRAM,使用的协议为UDP(用户数据报协议),其流程是客户建立socket,传入主机号和目的端口,sendto发送消息。服务器建立socket,recvfrom接受消息,应答。
流socket会分成若干较小的socket,具备分割、排序、重组的功能,传输过程中,内核会给数据加上发送信息和目的信息,传输中断对其影响不大,数据报socket则不给数据加编号标签,在目的地也不重组。流socket得先建立连接,然后通信,数据报则不用,它就像发送邮件一样,不用连接,有需要就向服务器发送数据。因此数据报对于可以丢帧的音乐、视频流是好的选择,而流对web服务器和email较好。
阅读(5099) | 评论(0) | 转发(0) |