Программирование асинхронных сокетов - PullRequest
0 голосов
/ 23 февраля 2010

Я создаю асинхронное программирование сокетов в vb.net. Я использовал код из асинхронного кода клиента и сервера по следующим ссылкам:

http://msdn.microsoft.com/en-us/library/fx6588te.aspx для серверной программы

Клиентская программа находится по той же ссылке в /bew39x2a.aspx (извините, я новый пользователь, поэтому могу разместить только одну ссылку полностью)

Когда я пытаюсь подключить для более чем один клиент, второй клиент всегда ждет, пока первый клиент завершает звонок. я хочу, чтобы клиенты принимали звонки одновременно ... Помогает ли WCF нескольким клиентам принимать вызовы одновременно ??? если да, то что такое WCF и как это поможет. Или есть какая-то другая концепция, которая может помочь ???

Любые вопросы о программах, пожалуйста, перейдите по ссылкам выше. скажи мне программу для этого. это очень актуально для моего проекта, и я новичок в программировании сокетов.

Заранее спасибо

1 Ответ

0 голосов
/ 23 февраля 2010

Да, WCF может помочь вам там. Но он реализует только хорошо известные протоколы, такие как SOAP, WS- *, JSON, и несколько проприетарных, таких как двоичное связывание TCP.

Вы бы использовали программирование асинхронных сокетов, только если вам нужно

  • Высокая масштабируемость (более 20 одновременных клиентов)
  • Пользовательский протокол

Если вы строите поверх HTTP, я рекомендую HttpListener class

Если вам нужен собственный протокол с несколькими клиентами, используйте синхронное программирование сокетов с несколькими потоками.

Если вы все еще хотите реализовать сервер с асинхронными сокетами, то вам нужен непрерывный цикл, который принимает соединения (после EndAccept() немедленного вызова BeginAccept() снова) и затем запускает BeginReceive()

По опыту могу сказать, что отладка такого сервера не легка. Довольно сложно проследить цепочку событий даже через подробный лог-файл. Удачи с этим:)

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