Да, WCF может помочь вам там. Но он реализует только хорошо известные протоколы, такие как SOAP, WS- *, JSON, и несколько проприетарных, таких как двоичное связывание TCP.
Вы бы использовали программирование асинхронных сокетов, только если вам нужно
- Высокая масштабируемость (более 20 одновременных клиентов)
- Пользовательский протокол
Если вы строите поверх HTTP, я рекомендую HttpListener class
Если вам нужен собственный протокол с несколькими клиентами, используйте синхронное программирование сокетов с несколькими потоками.
Если вы все еще хотите реализовать сервер с асинхронными сокетами, то вам нужен непрерывный цикл, который принимает соединения (после EndAccept()
немедленного вызова BeginAccept()
снова) и затем запускает BeginReceive()
По опыту могу сказать, что отладка такого сервера не легка. Довольно сложно проследить цепочку событий даже через подробный лог-файл. Удачи с этим:)