¿Es posible imitar tcp en udp usando C?

Sí, y muchas personas lo han hecho, generalmente mal. Hay problemas para lograr que las ventanas deslizantes sean correctas, un inicio lento y cualquier cantidad de optimizaciones y elementos de seguridad que se han implementado en las implementaciones de TCP durante décadas. Esos son principalmente una cuestión de código.

La peor parte es que si no está en el núcleo del sistema operativo, entonces tiene un montón de complejidad de mapeo. ¿Qué es el “host”? ¿Es un solo puerto UDP atendido por uno o más de un proceso? ¿Cuál es el dominio del espacio del puerto TCP y cómo se gestiona? Un escenario plausible es aquel en el que cada proceso es un “host” con su propio espacio de puerto, y ese proceso es responsable de todos sus propios muxing, demuxing, acking y retransmitiendo. Esto implicará hilos más o menos dedicados a las tareas en segundo plano, o alguna programación asincrónica complicada en torno a E / S sin bloqueo.

No. TCP funciona con datos después de que se hayan pasado fuera del control de su código C.

Sin embargo, definitivamente es posible imitar el servicio de entrega garantizada de TCP utilizando C y UDP