我遇到了来自boost :: asio的奇怪错误的问题。我正在实现一半的TFTP服务器(仅限服务器 - >客户端)。我在第一个套接字上的端口69上获得第一个RRQ数据包,然后创建另一个套接字来执行DATA,ACK交换。我在该套接字上启动一个async_receive(),然后执行第一个数据包的send()。然后我得到接收器的处理函数回调函数(我假设ACK进来了),它给出错误“没有连接,因为目标机器主动拒绝它”,我从这里的另一个线程理解意味着ERROR_PORT_UNREACHABLE。对于UDP async_receive的boost :: asio错误
我真的不明白接收电话会如何导致UNREACHABLE错误,因为我没有接触到任何东西,我正在接收。我检查了send()的结果,那里没有错误。
我检查了套接字中的本地和远程端点(错误之前和之后),并且它们都具有正确的IP地址和端口。
任何想法?我一直在搜索,并找不到其他人有这个问题。大多数结果让我转向了stackoverflow,所以我在这里问。
编辑 - 我的问题是,我正在使用调试器。在我发送第一个数据包时,当客户端在大约一秒钟内发送了十几个请求后,客户端超时并放弃,我的数据太晚了。当我运行没有断点时,它工作正常。感谢大家的建议。它正在观察Wireshark中的数据包给我提供了线索。
请不要在解决问题时编辑您的问题。添加的材料更适合作为您接受的答案的评论。 –