C TCP обычно не работают пакетами. Работают потоками или Streams. Это нормальный левел прикладного программиста. И я почти не знаю задач кроме студенческих лаб где кому-то вдруг понадобился пакет как таковой.
Примеров полно. API: socket(), connect(), bind() ,listen().
Поэтому может быть автору нужен принципиально другой протокол. Прикладной UDP. Или более системный IP но с последним сложнее работать т.к. операционки запрещают его напрямую. Через него легко устраивать различные Syn-Flood атаки. Нужно как-то повышать привилегии или пользовать сторонние либы.