The behavior of send() and recv() in socket communication
问题 The following is the setup: Server Client | | accept connect | | v | send msg1-> | | | v v recv <- send | | v v send msg2-> recv | | v v close Here is my question: 1. Client actually receives msg1 before it closes, why is it like this? 2. send msg2 returns normally. Since client closes after receiving msg1, why is send msg2 successful? P.S. I'm using stream socket for TCP. 回答1: The recv function will get whatever is next in the receive buffer. In the case of the client, if the socket is a