UARTs have 7 vs 8 bit, parity negotiation, speed negotiation and all other manner of arcane config that has to be exactly perfect for anything to flow.
Sockets don’t look too bad compared to that
Sockets don’t look too bad compared to that
I don't care about the specific uart-level detail here.
Of course you have datagram protocols and recvmsg() & co, which are useful precisely when you're dealing with something that does not looks like a uart.