在while循环内,无时间间隔的发送大包数据(30多万字节),会导致send函数一直阻塞吗?
关键要看接收端处理速度和传输带宽,
30万字节 = 300000 byte = 300KB。 按局域网100M的带宽,除去开销,实际传输速率大概在10MB,这个通常不会成为瓶颈。
接收端处理速度,就跟是否阻塞相关了,如果接收端处理速度低于发送速度,send就会阻塞。
所以,建议如果是大数据量的传输,一定要确定接收端的处理能力,发送时做好流控,也就是在while循环中sleep一会儿。
tcp的发送是否阻塞是跟接收端有关系,如果接收端接收的慢,你发送快是没有用的,会阻塞的。
不知道你这个问题是否已经解决, 如果还没有解决的话:机制:
序列号:
ACK确认号:表示接收方希望收到发送方下一个报文段的第一个字节数据的编号(序列号),也就是告诉发送方:我希望你(指发送方)下次发送给我的 TCP 报文段的序列号字段的值是这个确认号。
TCP连接包括