我有一个循环,我必须使用套接字
接收N
个字节的数据
int bytesRead = 0;
int offset = 0;
do
{
var buffer = new byte[N - offset];
bytesRead = socket.Receive(buffer, 0, buffer.Length, SocketFlags.None);
Buffer.BlockCopy(buffer, 0, packet.Buffer, offset, bytesRead);
offset += bytesRead;
// Thread.Sleep(How much have I to sleep?);
}
while (offset < N);
packet.Buffer
是存储所有数据的地方。
我应该在套接字接收之间使用Thread.Sleep
来等待足够的数据到达吗?如果是,多少毫秒?
答案 0 :(得分:4)
答案 1 :(得分:1)
绝对不是。这实际上是浪费时间。接收将阻塞,直到数据或EOS到达,并且它将阻塞正确的时间长度。加入睡眠毫无意义。