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