,收消息都是从己端的缓冲区中收
tcp:send发消息,recv收消息
udp:sendto发消息,recvfrom收消息
part2:
tcp是基于数据流的,而udp是基于数据报的
send(bytes_data...,只不过数据丢失
*recvfrom收的数据小于sendinto发送的数据时,在Mac和Linux系统上数据直接丢失,在Windows系统上发送的比接受的大直接报错
*只有sendinto发送数据没有recvfrom...收数据,数据丢失
PS:
1.你单独运行上面的udp的客户端,你发现并不会报错,相反tcp却会报错,因为udp协议只负责把包发出去,对方收不收,我根本管不着,而tcp是基于链接的,必须有一个服务端先运行着...,客户端去跟服务端建立连接然后依托于连接才能传递消息,任何一方试图把连接摧毁都会导致对方程序崩溃
2.上面的udp程序,你注释任何一条客户端的sendinto,服务端都会卡住,为什么?...服务端只收了一小部分,服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包)