Как оставить соединение полуоткрытым на C#? Добрый день!
Как всем известно, в C# существует библиотека для создания TCP подключений.
Само же TCP подключение требует так называемого "тройного рукопожатия"
И так, сам вопрос. Каким образом на C# возможно реализовать полуоткрытое соединение? То бишь как НЕ совершать последнего третьего "рукопожатия" с флагом ACK?

21 Авг 2019 в 06:37
233 +1
0
Ответы
1

В C# можно использовать класс TcpClient для управления TCP соединением. Для реализации полуоткрытого соединения, вы можете установить флаг SYN_SENT в соединении, чтобы отправить сегмент SYN без ACK.

Пример кода:

using System;
using System.Net.Sockets;
class Program
{
static void Main()
{
TcpClient client = new TcpClient();
client.Connect("127.0.0.1", 1234);
// Set the SYN_SENT flag to send SYN without ACK
Socket socket = client.Client;
socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.Debug, true);
// Use the connection as needed
client.Close();
}
}

Пожалуйста, обратите внимание, что такое поведение может привести к непредсказуемым результатам и может нарушить стандартные процедуры TCP соединения. Будьте осторожны при использовании полуоткрытых соединений.

20 Апр в 13:15
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир