Опрос тысяч сокетов TCP

Мне нужно подключаться к тысячам клиентов по TCP по проприетарному протоколу для циклического получения данных. Мне нужно написать серверное приложение.NET на языке C #.

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

Я обнаружил, что вместо этого было бы лучше использовать пул потоков.NET. Насколько я понимаю (http://msdn.microsoft.com/en-us/library/ms973903.aspx), я мог бы использовать таймеры, чтобы каждый сокет получал данные циклически в заданный период (, например 1 сек ). Это не работает для меня, потому что время ожидания сокетов истекает после того, как соединение было открыто, потому что есть еще много сокетов, которые нужно открыть, прежде чем открытые сокеты снова повернутся.

Другая попытка заключалась в использовании асинхронных обратных вызовов. Это сработало бы для меня, но я не знаю, как заставить сокеты циклически получать данные???

5
задан sqeez3r 24 April 2012 в 14:59
поделиться