По сути, похоже, что вы пытаетесь заключить некоторые необработанные данные, которые у вас уже есть, в файл в заголовки UDP или TCP и IP, а затем получить «обернутые» выходные данные? Обратите внимание, что это будет проблематично для TCP, так как его двусторонний протокол и «обернутый» поток будут зависеть от ответов от удаленного сайта (повторные передачи, размеры пакетов и т. Д.)
Один быстрый и грязный способ сделать это - передать данные на удаленный хост (может быть не существующим для UDP, хотя для TCP вам понадобится прослушивающий сокет на удаленном компьютере. Вы можете передавать эти данные через netcat или netcat6 для IPv6. Затем вы можете запустить tcpdump или wireshark на той же машине, чтобы захватить весь упакованный поток в файл в формате PCAP. В этом PCAP будут упакованы ваши необработанные данные (данные в заголовках UDP / TCP, IP и Ethernet)
Похоже, что для вашего приложения вы хотели бы удалить заголовки Ethernet перед использованием данных.
Предыдущий ответ на этот вопрос рекомендовал hping, который, вероятно, обеспечил бы вам большую гибкость за счет более длинной кривой обучения для получения желаемых результатов.