从套接字读取传入数据?

时间:2011-06-30 21:45:40

标签: c# sockets

我有一个Socket客户端,我想知道从它读取传入数据的正确方法是什么。

目前我正在使用以下功能:

private void _ReadResponsePackets()
{
    while (_socket.Connected)
    {
        try
        {
            byte[] bytes = new byte[1500];
            _socket.Receive(bytes);
            if (bytes.Length > 0)
            LoginserverPackets.Enqueue(bytes);
        }
        catch (Exception ex)
        {
            _log.Write(ErrorType.ERROR, "[LOGINCLIENT] " + ex.ToString(), true);
        }
    }
}

这是由自己的线程调用的:

Thread _readDataThread = new Thread(_ReadResponsePackets);
_readDataThread.Start();

正如你所看到的那样,我正在阅读和填写队列列表上收到的数据包以进一步提供线程,但我的问题是:

  • 我应该在我的网站中使用Thread.Sleep吗? 读取功能还是保持原样?
  • 它会对此产生更大的影响吗? 性能或内存使用情况 或使用Thread.Sleep?

还有其他的难题吗?

1 个答案:

答案 0 :(得分:0)

请检查以下链接,套接字将处于阻塞模式,因此您不需要使用Thread.Sleep。 Listener