Я предполагаю, что вы имеете в виду «пакеты» уровня приложения.
Если вы используете UDP, вам это не нужно, поскольку это протокол сообщений. TCP - это протокол потоковой передачи байтов, поэтому он не может отправлять пакеты, только байты. Если вам нужно отправить что-нибудь более сложное, чем байтовый поток через TCP, вы должны добавить еще один протокол поверх - HTTP является одним из таких протоколов. Текст довольно прост, поскольку строки имеют завершающие символы, обычно CR / LF / CRLF. Для отправки нетекстовых сообщений потребуется другой протокол.
Один из подходов, который часто используется с TCP, - это подключение, потоковая передача протокольного устройства, отключение. Это работает хорошо, но медленно из-за огромной задержки непрерывного открытия и закрытия TCP-соединений. HTTP обычно работает так, чтобы обслуживать веб-страницы большому количеству пользователей, которые, если они оставлены постоянно подключенными во время просмотра страниц, без необходимости будут использовать все серверные сокеты.
Ожидание ACK уровня приложения от однорангового узла иногда необходимо, если абсолютно необходимо, чтобы получение однорангового узла было известно до отправки следующего сообщения, но, опять же, это происходит медленно из-за задержки соединения. TCP не был разработан с учетом этого подхода.
Если общедоступные IP-протоколы не могут напрямую предоставить то, что вам нужно, вам придется прибегнуть к реализации своих собственных.
Какой «пакет» вы отправляете?
Rgds,
Martin