Нужно ли мне каждый раз вызывать `.BeginAccept`, чтобы получить больше данных? Или только для новых клиентов для подключения - PullRequest
0 голосов
/ 03 июня 2019

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

  1. Итак, сначала я запускаю серверный сокет с .listen().
  2. Затем я вызываю .beginAccept() с асинхронным обратным вызовом, который запускается всякий раз, когда клиент подключается. Проверьте.
  3. Когда я получаю новое клиентское соединение, мой обратный вызов запускается, я передаю соединение новому объекту сокета и начинаю получать данные, используя обратный вызов с .BeginReceive.

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

Может ли мой клиент и этот «сокет», который теперь был создан для связи с этим новым клиентом, продолжать говорить без моего повторного вызова .BeginAccept?

Я знаю, что мне нужно позвонить .BeginAccept, чтобы получить какие-либо новые клиенты, но может ли мой первоначальный клиент и его сокет сервера продолжать болтать взад-вперед, или мой клиент должен снова «повторно подключиться» к серверу через .BeginAccept вызов для каждой обратной передачи данных на сервер?

Надеюсь, мой вопрос имеет смысл, я немного запутался в этом вопросе; -)

Спасибо

...