Проблема с подключением к конечной точке с TcpClient, где порт> 8000

У нас есть некоторые унаследованные приложения на языке C++, которые могут подключаться к этим портам и другим серверам, однако, когда мы создаем (а точнее пытаемся создать) соединение с помощью tcpclient, мы получаем "ArgumentOutOfRangeException" для порта. Когда мы меняем порт на что-то вроде 8000, он работает нормально, но мы не можем оставить его таким, поскольку у нас есть устаревшие приложения, работающие с этими портами.

Должен ли я не использовать TcpClient для этого, есть ли еще способ использовать TcpClient? Спасибо

Вот пример кода:

 const int port = 80011;
 client.Connect(addressTxt.Text, port);

используя действительный IP-адрес и действительный порт, я получаю соединение, используя порт 80011 или любой другой порт, выбрасывается исключение (любой порт выше 65536 выбрасывает это исключение).

1 ответ

Как вы уже заметили, порты могут быть только в диапазоне 0-65535. Вы не можете использовать номер порта, который не соответствует 16-битному номеру.

Для получения дополнительной информации см. Формат заголовка TCP: http://www.freesoft.org/CIE/Course/Section4/8.htm

Другие вопросы по тегам