в сети, какой тип сокета я должен использовать, чтобы гарантировать, что принимающее приложение получило все данные в порядке?
Вам потребуется использовать сокет TCP (иногда называемый надежным).Пример кода создания такого сокета:
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);