说实在的这个问题非常简单,不过你习惯太差,你把send和recv的返回值看看不就明白了!
前提是你描述的都是事实。
否则还可能有Socket问题。
如果是linux,strace一下就知道什么问题了。
Windows的也很简单。
前面的明显不正确,send如果是TCP,(UDP 不应该用send),send返回时,消息已经发出了。
原因,Send后,立即关闭了连接。这个时候数据没有发送出去。关闭的时候,服务器recv直接返回0
你在send后加个延时试试,可能是你还没发送完毕就关掉了连接的原因