避免在TCP NetworkStream(C#)中轮询

时间:2016-02-14 22:13:20

标签: c# sockets networking tcp

我正在使用C#编写应用程序来管理客户端服务器体系结构中的网络组。在服务器中,有2个对象: “网络”和“NetworkClient”。 “网络”是一个简单的类,它包含一个“NetworkClient”列表和一个TCP侦听器。 “NetworkClient”包含TCP侦听器,TCP客户端和网络流。 因此,我们假设,例如,有3个“网络”又包含50个“NetworkClient”。我必须检查是否有来自任何网络客户端的传入“消息”。我的(可怕的)解决方案是通过计时器读取每个“网络”中每个“NetworkClient”中的NetworkStream。这个解决方案的问题是我读取每个网络流,即使它是空的!这是一个令人难以置信的浪费时间。 我理想的解决方案是仅在有传入的“消息”时才读取网络流。有没有办法实现呢? 谢谢。 (PS:对不起我的英语,我是意大利人,我从2个月开始每天都在学习B2剑桥考试,所以我现在已经烧掉了:D)

0 个答案:

没有答案