【发布时间】:2009-07-06 08:37:47
【问题描述】:
我需要一些帮助来理解我在使用 asio 时遇到的一个特殊问题。
我有一个客户端-服务器应用程序,带有一个 c++ 客户端(使用 boost asio)向服务器(用 java 编写)发送 2 字节的心跳(例如,每秒)(并接收大量数据)。
在相当长的几分钟内,服务器正确接收到 2 字节的 HeartBeat,但之后服务器的“读取”会抱怨读取 0 字节,并关闭连接(我猜这对于阻塞读取是正确的)。然而,客户总是打印出它正在转移正确的金额。
我已经尝试过几乎所有“写入”函数系列的变体。它们都是根据“write_some”实现的吗?这是否意味着这种行为是预期的?
我在使用中一定犯了一些错误,基本上我在 asio 中寻找可以保证写入(至少一个字节)的东西。请帮我弄清楚我哪里出错了(如果需要任何进一步的信息。)... 任何建议,非常感谢! 谢谢!
【问题讨论】:
标签: c++ boost-asio