У меня есть серверное приложение, которое получает некоторый специальный TCP-пакет от клиента и должно реагировать на него как можно скорее, отправив ACK высокого уровня клиенту (TCP ACK не будет соответствовать моим потребностям).Как увеличить приоритет TCP-пакета в Delphi?
Однако этот сервер действительно интенсивно работает в сети, и иногда пакет будет слишком длинным для отправки (например, 200 мс в локальной сети, когда простое серверное приложение может отправить его менее чем за 1 мс).
Есть ли способ отметить этот пакет с высокоприоритетным тегом или что-то в этом роде в Delphi? Или, может быть, с Win32 API?
Заранее спасибо.
EDIT
Спасибо за все ответы до сих пор. Я добавлю некоторые подробности. Мой продукт имеет следующую настройку: есть несколько устройств, которые построены на автомобилях с WIFI-связностью. Когда они прибудут в гараж, эти устройства подключаются к моему серверу и начинают передавать данные.
Из-за аппаратных ограничений я внедрил ACK высокого уровня, чтобы сообщить устройству, что последний пакет прибыл успешно (просьба не спорить об этом - данные могут быть повреждены, даже если я получил правильный TCP ACK). Однако, если я использую свое серверное программное обеспечение, которое связывается с удаленной базой данных, чтобы выдать этот ACK, я получаю очень длинную задержку (> 200 мс). Если я использую эксклюзивное программное обеспечение для выполнения этой задачи, я получаю небольшие задержки (< 1ms). Итак, я подумал, могу ли я просто сказать Windows, чтобы отправить эти специальные пакеты в первую очередь, так как кажется мне, что этот пакет задерживается, поэтому базы данных могут быть доставлены.
Это мотивация моего вопроса.
EDIT 2
В соответствии с просьбой: это устаревшее программное обеспечение, и я использую наследие dclsockets140.bpl пакет и Delphi 2010 (14.0.3593.25826).
В какой библиотеке вы используете? Версия Delphi? –
TCP не знает приоритетов. – Leo
@Mef, делает. См. Мой ответ. – OnTheFly