我试图通过asio连接客户端和服务器,但我的连接一直被拒绝。我的预期输出是一个干净的连接,没有错误。
client.cpp
#include <boost/asio.hpp>
#include <fstream>
#include <iostream>
using namespace std;
using namespace boost;
using namespace boost::asio;
using namespace boost::asio::ip;
using ip::tcp;
int main()
{
io_service io_s
所以,
我一直在使用Boost asio函数和套接字(特别是异步读/写)。现在,我认为boost::asio::async_read只在新的缓冲区从网络连接进入时才调用处理程序……但是,它不会停止读取相同的缓冲区,因此会继续调用处理程序。我已经能够通过检查传输的字节数来缓解它,但是它基本上处于浪费CPU周期的忙碌等待循环中。
这就是我所拥有的:
class tcp_connection : : public boost::enable_shared_from_this<tcp_connection>
{
public:
// other functions here
好的..。我花了太多的时间来做这个。
我正在做的是列一个连接列表,“陌生人”只是一个未经确认的连接,或者被拒绝的连接,等待一个ack来确保客户端收到消息。主机有一个向量,这些陌生人作为boost::shared_ptr,当一个陌生人被接受,并被攻击,它成为一个客户,但这不是问题。
当接收到连接时,将生成一个新的陌生人,但在发送数据包的内部调用端点"(*it)->getEndpoint()“时,我会得到一个运行时错误,但这只是一个示例,其他值(如"timed_out”)也是如此。
下面是陌生人类,以及发送
class stranger : public boost::ena