.net tcp client асинхронная модель

Мне нужно реализовать TCP-клиент, который будет отправлять данные на сервер, а также получать сообщения. Модель связи должна быть асинхронной. У вас есть хороший пример этого? Нужно ли мне реализовать это в другом потоке... который постоянно читает из сокета? ... или я могу использовать шаблон BeginReceive сокета?

Спасибо, Раду.


person Radu D    schedule 24.01.2011    source источник


Ответы (1)


Когда вы подключаетесь к серверу через TCP, вы получаете дуплексный канал, поэтому сервер может общаться с клиентом в том же сокете.

Об использовании начала получения вы можете использовать его, чтобы избежать создания рабочих потоков и постоянного чтения сокета (так же, как вы можете использовать BeginSend). Без дополнительной информации о том, что вы пытаетесь сделать, это лучшее, что я могу вам дать... да, вы можете. :)

person Jorge Córdoba    schedule 24.01.2011
comment
знаете ли вы статью, в которой показано, как установить класс (в моем случае сеанс), который имеет метод для отправки сообщений и постоянно получает все сообщения с сервера. Проблема в том, что я отправляю сообщение и жду ответа через некоторое время... но за это время сервер может отправить мне много сообщений. - person Radu D; 24.01.2011
comment
Не совсем, но вы хотите сделать BeginReceive, а в AsyncCallback сделать еще один BeginReceive (чтобы вы зацикливались на получении асинхронно). Конечно, управление протоколом приложения, когда вы говорите о непоследовательной отправке и получении, — это совсем другая история. - person Jorge Córdoba; 24.01.2011
comment
Я думаю, что я пропустил эту часть с другим BeginReceive - person Radu D; 24.01.2011