синхронное многопользовательское сокрытие клиента

77
8

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

Я считаю, что когда мы создаем сокет и вызываем соединение, TCP/IP-соединение - это туннель между клиентским сокетом и серверным сокетом.

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

В случае, если мы получили сообщение об ошибке, что клиент не подключен, всегда необходимо подключиться к существующему сокету (отправителю), тогда мы получим доступ к тем же данным/соединения, которые у нас были. И мы не должны создавать новый сокет, тогда у нас будет новый туннель, и мы потеряем предыдущее соединение и данные.

Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp );
sender.Connect(remoteEndpoint)

Просьба уточнить, не ошибаюсь.

спросил(а) 2021-01-25T19:05:36+03:00 4 месяца, 2 недели назад
1
Решение
63

То, что вы называете туннелем, действительно называется соединением. Сломанные соединения не могут быть восстановлены. Потери данных ожидаются.

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

Обратите внимание, что TCP не знает, что такое сокет. Спецификация не содержит этого слова. Сокеты - это вещи уровня ОС.

ответил(а) 2021-01-25T19:05:36+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема