3
我有一个套接字客户端,我想知道从它读取传入数据的正确方法是什么。从套接字读取传入数据?
目前我使用了如下功能:
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();
正如你可以看到我merelly阅读和起毛起球收上来的报文队列表进一步线程,但我的问题在这里:
- 我应该使用Thread.Sleep在我的 阅读功能或保持原样?
- 它会对 性能或内存使用造成多大影响,因为它是 或使用Thread.Sleep?
还有其他什么?
你有没有关于使用异步套接字?我有一个使用这个类的课程,你喜欢看,但网上有很多很好的例子。 – Jethro
@Jethro没有,事实上我没有太多的socket编程背景,并且像这样开始,以便首先获得对该区域的一些理解。基本上,我会从使用异步套接字中获得什么好处?此外,您对其他问题的理解也是如此;)即使我没有使用套接字,但在内存消耗方面仍然存在一个问题,请参阅 – Prix
请在stackoverflow上查看此帖。 http://stackoverflow.com/questions/2512356/sync-vs-async-sockets-performance-in-net – Jethro