For detailed explanation from a TCP and sockets point of view, see: https://stackoverflow.com/questions/11436013/writing-to-a-closed-local-tcp-socket-not-failing (This is described the opposite way round, where the client closes the socket then the server tries to write, but it's the same: once the sockets are connected, it doesn't matter which is "client" or "server")
In short, if your application wants to know that the message was received by the other end, then you need an application-level acknowledgement sent by the other end. You will need this anyway, because in general you don't care that the message was received by the TCP stack at the other side; what you care is that the application has received *and processed* the message. Otherwise, the message could have been successfully sent to the remote TCP stack, and the even received by the application, but the application killed or the power plug yanked before the application has had time to process it. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/d84a9269-99b2-4680-bc0d-5642bf29d749n%40googlegroups.com.