Estou usando socat
para encaminhar o tráfego serial de entrada para uma porta UDP local (no macOS):
socat OPEN:/dev/cu.usbmodem13203 UDP:localhost:12345
Considero um dispositivo serial uma interface de streaming, enquanto o UDP é baseado em pacotes, portanto não existe uma resposta certa definitiva onde ou como introduzir limites de pacotes. No meu teste, cada byte é encaminhado como seu próprio pacote UDP. Por exemplo, ao enviar a string "XYZ", meu servidor de teste gera:
Datagram: X
Datagram: Y
Datagram: Z
Por que a sequência de bytes é dividida em vários pacotes e qual é o mecanismo por trás disso? Existe alguma maneira de controlar esse comportamento?