socket介绍(第56章)

分类:

1. 流方式的socket。       TCP。它的特点是全双工;可靠的;消息无边界的(类似于pipe);面向连接的(需要先创建连接)。

2. 数据包方式的socket:UDP。它的特点是全双工;不可靠;消息有边界;无连接的(不需要像流方式socket那样connect,accept)

listen调用:

它的第二个参数是用于限制最大的未决连接的数量。当server端尚未调用accept的时候客户端可能已经connect了,那么在server端就会产生一个未决的连接。 当未决连接小于最大的限制的时候connect不会阻塞,当超过这个限制的时候connect会阻塞主。

TCP握手与挥手:

TCP建立连接的时候有三次握手,因为它是全双工的,所以现实一端发送“我想跟你建立连接”,另外一端收到后回应“好的,我收到了你的请求,我也想跟你建立连接”;源端收到后回复“好的,我收到了你的回应”。 所以总共有三次握手。

TCP断开连接的时候有四次挥手:源端发送“我断开连接了,以后不会给你发送数据了”;目的端收到后回应“好的,知道了”;然后目的端发送“我想和你断开发送的连接,我以后也不会给你发送数据了”;然后源端发送“好的,知道了”。 之所以不能像握手那样省掉一次连接的原因是,当源端断开连接的时候只是表明源端以后不会给目的端发送数据了,但是目的端可能还有数据需要发送给源端,需要把这些数据发送完成后才能关闭,所以多了一次消息交互。

数据报方式的socket:

它也可以选择执行connect,如果connect了,那么可以使用write,read这样简单的系统调用,不用传入地址那一堆参数。 而且是与执行的socket通信。 也可以不connect。

posted @ 2018-05-16 09:09  你的KPI完成了吗  阅读(66)  评论(0)    收藏  举报