我有一个基于libev的套接字服务器,它从多个simultaneousos套接字获取消息
我使用recv()从套接字接收消息。并发送()与套接字进行通信 问题是有时即使我执行send()并且send()的输出是> 0 另一边的插座仍然没有收到任何东西
代码的精简版本就在这里 http://pastebin.com/SM7uPkVD
(大部分都是从互联网上剪下来的)
问题是,套接字通信的99%的时间都可以正常工作,只有一些地方失败了。 是否有一些我想念的明显事物
答案 0 :(得分:0)
使用SOCK_STREAM
套接字时,无法保证多次发送会导致多次接收。特别是,您的服务器可能会在第124行中一次读取多个合并的请求,然后在第135行中仅回复一次,从而导致您认为数据正在丢失。您应该检查readlen > 3
是否验证了这一点。