永发信息网

为什么CSOcket接收信息会卡住

答案:1  悬赏:60  手机版
解决时间 2021-04-03 01:03
  • 提问者网友:你独家记忆
  • 2021-04-02 18:28
为什么CSOcket接收信息会卡住
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-04-02 18:47
楼主可能没搞清楚,当每个socket建立后会有一个发送缓冲区和一个接收缓冲区,windows系统默认是8KB,send调用成功以后数据并没有立即发出去,而只是把发送的数据复制到发送缓冲区,由操作系统底层实现发送功能,发送到接受端的接收缓冲区。为了减轻网络负担,一般的TCP链接用了nagle算法,并不是发送缓冲区有数据就会发送的。
对于接收端来说,receive(char *buf,num)只是从接收缓冲区里面取数据,返回的值就是取得的数据大小。你多次send,如果数据量不大,而num的值超过了发送的总值,那么就会一次取完接受缓冲区的数据。
不知道这样解释楼主清楚了没有。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯