2016-08-05 3 views
-1

В попытке использовать TCP для игр с быстрым и высоким пакетом я хотел бы отключить обнаружение потери пакетов TCP (если пакет терпит неудачу, он отправляет другой), так как это увеличивает время и на самом деле это не нужно (мне все равно, если 1-3 пакета потеряются больше, они перезапишут его через несколько секунд). Как я могу это сделать, используя язык программирования C#?Как отключить предотвращение потери пакетов TCP C#

+0

Я не нашел никакой документации по изменению этого, так что вам нечего попробовать. Однако я попробовал TcpClient.NoDelay = true; который не делает то, что я думал. –

ответ

2

Используйте UDP вместо этого! Вы не можете отключить его.

Обновление:
Поэтому я просто искал информацию по этому вопросу и выяснил, что отключение повторной передачи возможно операционной системой, но приведет к прерыванию соединения, которое поддерживает мою первоначальную инструкцию. И побочные эффекты этого будут проблематичными для всей ОС.

Для Windows: https://support.microsoft.com/en-us/kb/170359

Там, безусловно, будет установка для других операционных систем, а также.

+0

Хотелось бы избежать использования UDP, поскольку мне нравится иметь фактические состояния соединения. Что-нибудь еще, что я могу сделать? –

+2

Внедрение состояний соединения в вашей программе. Затем используйте UDP. TCP требует, чтобы все пакеты были подтверждены принимающей стороной. Это базовая функция TCP. –

Смежные вопросы