套接字传输注意事项:
1.监听套接字存在客户端即可发起连接,但是最终连接的处理需要accept进行处理
2.如果连接的另外一段退出,则recv会立即返回空子串不再阻塞
3.当连接的另一端退出时,再试图send发送就会产生BrokenPipeError错误
网络收发缓冲区
缓冲区作用:协调收发(处理)速度,减少交互次数
send和recv实际上是和缓冲区进行交互,发送缓冲区满时就无法发送,接收缓冲区满时recv才阻塞
TCP粘包
产生原因:
TCP套接字以字节流方式传输,没有消息边界
发送和接收并不能保证每次发送都及时地被接收
影响:
如果每次发送内容表达一个独立的含义,此时可能需要处理粘包防止产生歧义
处理方法:
1.每次发送的消息添加结尾标志(人为增加消息边界)
2.发送数据结构体
3.协调收发速度,每次发送后都预留接收时间
发表评论