假设我有一个发送器套接字和接收器套接字。发送方套接字发送总共1 GB的消息,但接收方套接字既不读取也不关闭套接字。
在套接字关闭之前,1GB的消息会发生什么?他们坐在OS缓冲区的某个地方吗?
更具体......
答案 0 :(得分:1)
是的,数据将位于TCP / IP堆栈的缓冲区中。虽然它远远低于1Gb。
假设您使用TCP - 它采用流量控制来处理这种情况,接收器缓冲区将填满。当接收器缓冲区已满时,发送方将停止发送。发送方缓冲区将填满,当它已满时,应用程序写入/发送调用将阻塞,直到接收方开始使用数据或发生错误