tcp:send发消息,recv收消息
udp:sendto发消息,recvfrom收消息
part2:
tcp是基于数据流的,而udp是基于数据报的
send(bytes_data):发送数据流,数据流...bytes_data若为空,自己这段的缓冲区也为空,操作系统不会控制tcp协议发空包
sendinto(bytes_data,ip_port):发送数据报,bytes_data为空,还有ip_port,...if判断,空消息就break掉通信循环)
*对于Windows/Linux系统:如果一端断开了链接,那另外一端的链接也跟着完蛋recv将不会阻塞,收到的是空(解决方法:服务端通信循环内加异常处理,捕捉到异常后就...break掉通讯循环)
2.udp协议
(1)如果收消息缓冲区里的数据为"空",recvfrom也会阻塞
(2)支部会udp协议的客户端sendinto一个空数据并不是真的空数据(包含:空数据+地址信息...和Linux系统上数据直接丢失,在Windows系统上发送的比接受的大直接报错
*只有sendinto发送数据没有recvfrom收数据,数据丢失
PS:
1.你单独运行上面的udp的客户端