我已经编译并运行了boost::asio中的聊天服务器示例,但它有一些问题。客户端可以毫无问题地连接到服务器,但无论何时输入文本,都不会发送到服务器。服务器可能会检测到十分之一的消息,除非实际没有接收到任何数据。
有什么想法吗?我已经逐字逐句地复制了代码(除了重命名之外,我只有一个服务器)。
您必须调试代码:例如,您可以在客户端的各种处理程序中设置断点。为了做到这一点,如果您了解代码的异步流,这将是有帮助的,例如,在客户端上,handle_connect
将是第一个被调用的异步处理程序,等等。
在客户端上执行handle_connect
将告诉您套接字是否成功连接。类似地,handle_write
将告诉您异步写入操作的结果。
同样,类似地,一旦客户端连接,服务器上的handle_accept
将被调用。
或者,将printf
s添加到asio代码中,以查看哪些正在执行,哪些没有执行。
附言:我假设你确实点击回车键从客户端发送消息?