2013-03-08 2 views
1

Я работаю над проектом, где у меня есть один клиент, которому нужно открыть сеанс Telnet на несколько серверов (100) и дождаться сообщений. Сообщения небольшие (< 80 байт) и будут происходить случайным образом.Один клиент, разговаривающий с несколькими серверами

Я читал, что это плохая форма для этого, создавая поток для каждого «сервера». Я ищу предложения относительно наилучшего способа обработки нескольких сайтов с помощью TCPClient или Winsock или Catalyst или ???

Спасибо за помощь!

Gary M

ответ

1

Как это платформа для Windows, есть много вариантов. Вы можете использовать Winsock функцию, или WSAPoll, или WSAAsyncSelect, или порты завершения.

выбрать/WSAPoll работать почти как в Posix, и есть много примеров и некоторые готовые библиотеки о том, как их использовать.

WSAAsyncSelect отправит события в поток пользовательского интерфейса (для этого вам нужно иметь окно). Если у приложения есть окно, это может быть самый простой вариант, так как вся деятельность будет происходить в потоке окна, а библиотека позаботится о сериализации событий.

Также обратите внимание на (это важно, так как у вас есть более 64 соединений): http://msdn.microsoft.com/en-us/library/windows/desktop/ms739169(v=vs.85).aspx

Использование портов сдачи Windows: http://msdn.microsoft.com/en-us/magazine/cc302334.aspx http://msdn.microsoft.com/en-us/magazine/ms810436.aspx

+0

Большое вам спасибо за эти предложения! Я пойду через них и выясню, что лучше всего подходит для этого приложения! – user2146614

Смежные вопросы