我有一个基于libev的套接字服务器,它从多个simultaneos套接字获取消息
我使用recv()从套接字接收消息。和send()来与套接字通信,问题是有时即使我执行send()并且send()的输出>0,另一端的套接字仍然什么也收不到
代码的精简版本在这里是http://pastebin.com/SM7uPkVD
(其中大部分是从互联网上剪切粘贴的)
问题是,在99%的情况下,套接字通信都能正常工作,只有在某些情况下才会失败。我是否遗漏了什么明显的东西?
发布于 2013-04-04 16:08:18
当使用SOCK_STREAM套接字时,不能保证多个发送会导致多个接收。特别是,您的服务器可能会一次读取124行中的多个合并请求,然后在135行中只回复一次,这会使您认为数据正在丢失。您应该检查是否为readlen > 3,以验证这一点。
https://stackoverflow.com/questions/15804219
复制相似问题