2011-01-24 1 views
0

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

Спасибо, Radu

ответ

1

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

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

+0

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

+0

Не совсем, но вы хотите сделать BeginReceive, а в AsyncCallback сделать еще один BeginReceive (чтобы вы выполняли асинхронный цикл). Разумеется, управление протоколом приложения, когда вы говорите о несекретных передачах и приемах, - это еще одна история. –

+0

Я думаю, что я пропустил эту часть с другим BeginReceive –