直到什么时候NetworkStream.Write块? [英] Until when does NetworkStream.Write block?

查看:240
本文介绍了直到什么时候NetworkStream.Write块?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能想到的这些可能的答案:

I can think of these possible answers:

  • 直到数据被写入到IP栈的一些内部缓冲器。
  • 直到数据被通过线路发送。
  • 在此之前接收的确认从其它机器接收到的。

推荐答案

直到数据被写入在发送机侧的发送缓冲器。
所以,如果缓冲区已满,它会阻止。

Until data is written to the send buffer on the sender side.
So if buffer is full, it will block.

的发送缓冲区可以是充分,如果它不发送,因为对网络问题的数据,又或因为接收缓冲器满在接收器侧。

The send buffer can be full if it didn't transmit data yet, because of network issues or because receive buffer is full on the receiver side.

还有一个实验中,你可以进行:使发送者和接收者,设置发送者的套接字发送缓冲区小东西和接收器的接收缓冲区小东西

There is an experiment you can conduct: make a sender and receiver, set sender's socket send buffer to something small and receiver's receive buffer to something small to.

开始发送,接受在接收端连接,但没有收到。当发送的字节数约为SenderSendBuffer + ReceiverReceiveBuffer的插​​座将被阻止。

Start sending, accept connection on the receiver side, but don't receive. The socket will be blocked when the sent bytes number is about SenderSendBuffer + ReceiverReceiveBuffer.

这篇关于直到什么时候NetworkStream.Write块?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆