> Empty TCP messages are perfectly valid, but they should be hidden from > you. recvfrom returning 0 means the connection has been closed, but > thatʼs a separate thing. I suspect there's a missing ifdef in the code which ends up terminating the process on such a condition, for both TCP and UDP. > Could you show how youʼre generating the empty packets? Download the attachments from my previous email, launch the server with `emacs --batch -l bug-server.el`, then the client with `guile fixed-client.scm`. Swap out the server with `guile fixed-server.scm`. > Itʼs allowed by the protocol. I guess it could be useful for people > wanting to implement their own keep-alive protocol over UDP. I think so as well.