我需要在专有协议上通过 TCP 连接到数千个客户端以循环获取数据。我需要用 C# 编写一个 .NET 服务器应用程序。
第一次尝试是为每个 tcp 套接字创建一个自己的线程,它可以工作但需要大量的 cpu 使用。
我发现使用 .NET 线程池会更好。据我了解(http://msdn.microsoft.com/en-us/library/ms973903.aspx),我可以使用计时器来让每个套接字在给定的时间段内(如 1 秒)循环获取数据。这对我不起作用,因为一旦连接打开,套接字就会超时,因为在打开的套接字再次打开之前必须打开更多的套接字。
另一种尝试是使用异步回调。这对我有用,但我不知道如何让套接字循环获取数据???