C#socket.select可以返回多个套接字

时间:2010-07-20 11:22:47

标签: c# .net sockets

我想知道来自.Net的Socket.Select是否可以返回两个或更多元素的IList。到目前为止,在我的测试中,它们总是返回一个元素(Socket.Select在一个循环中)。我可以知道你做了什么样的测试才能返回两个或更多元素吗?

1 个答案:

答案 0 :(得分:0)

此处使用“可读”示例,但它也适用于其他IList参数(“可写”,“有错误”):

只要其中一个提供的套接字具有可供读取的数据,

Socket.Select就会返回。这意味着如果您在数据到达多个套接字之前输入Socket.Select,它通常会在只有一个套接字有可用数据时返回(如果您这样想,为什么它会等待另一个有数据可用? )。

要尝试多个套接字可以读取的情况,您只需在Thread.Sleep之前添加Socket.Select,并且有足够大的延迟,以允许两个发送进程同时发送其数据。