正在从套接字读取传入数据
本文关键字:数据 读取 套接字 | 更新日期: 2023-09-27 18:00:44
我有一个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.Listener