Я пытаюсь реплицировать приложение реального времени на компьютер с Windows, чтобы иметь возможность отлаживать и вносить изменения, но я столкнулся с проблемой с задержкой подтверждения.Я уже отключил Nagle и подтвердил, что он немного улучшил скорость.При отправке большого количества маленьких пакетов, окно не сразу подтверждает и задерживает его на 200 мс.Проводя дополнительные исследования, я наткнулся на этот .Проблема с изменением значения реестра заключается в том, что это повлияет на всю систему, а не только на приложение, с которым я работаю.Есть ли в любом случае отключить отложенный ACK в оконной системе, как TCP_QUICKACK
из Linux, используя setsockopt
?Я пробовал жестко запрограммировать 12, но получил WSAEINVAL от WSAGetLastError.
Я видел разработчика на github, в котором упоминалось использование SIO_TCP_SET_ACK_FREQUENCY
, но я не видел ни одного примера того, как его использовать.
Итак, я попытался сделать ниже
#define SIO_TCP_SET_ACK_FREQUENCY _WSAIOW(IOC_VENDOR,23)
result = WSAIoctl(sock, SIO_TCP_SET_ACK_FREQUENCY, 0, 0, info, sizeof(info), &bytes, 0, 0);
и получил WSAEFAULT в качестве кода ошибки.Пожалуйста, помогите!