Может ли C # socket.select вернуть более одного сокета - PullRequest
0 голосов
/ 20 июля 2010

Интересно, может ли Socket.Select из .Net вернуть IList из двух или более элементов.До сих пор в моем тестировании они всегда возвращали один элемент за другим (Socket.Select находится внутри цикла).Могу ли я узнать, какое тестирование вы провели, чтобы иметь возможность вернуть два или более элементов?

1 Ответ

0 голосов
/ 06 декабря 2011

Здесь используется пример «can read», но он также применим и к другим IList параметрам («can write», «has error»):

Socket.Select возвращается, как только в одном из предоставленных сокетов есть данные, доступные для чтения. Это означает, что если вы введете Socket.Select до того, как данные поступят в несколько сокетов, он, как правило, будет возвращаться, когда данные доступны только в одном сокете (если вы думаете об этом таким образом, зачем ему ждать, пока данные будут доступны другому?).

Чтобы попробовать случай, когда несколько сокетов могут читать, вы можете просто добавить Thread.Sleep перед вашим Socket.Select с достаточно большой задержкой, чтобы два процесса отправки могли отправлять свои данные обоим процессам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...