【发布时间】:2010-04-30 21:45:09
【问题描述】:
我一直在开发一个异步增强服务器程序,到目前为止我已经将它连接起来。但是,我现在收到“Vector iterator not dereferencable”错误。
我怀疑向量在数据包被发送之前被破坏或取消引用,从而导致错误。
void start()
{
Packet packet;
packet.setOpcode(SMSG_PING);
send(packet);
}
void send(Packet packet)
{
cout << "DEBUG> Transferring packet with opcode " << packet.GetOpcode() << endl;
async_write(m_socket, buffer(packet.write()), boost::bind(&Session::writeHandler, shared_from_this(), placeholders::error, placeholders::bytes_transferred));
}
void writeHandler(const boost::system::error_code& errorCode, size_t bytesTransferred)
{
cout << "DEBUG> Transfered " << bytesTransferred << " bytes to " << m_socket.remote_endpoint().address().to_string() << endl;
}
一旦建立连接,就会调用 Start。 packet.write() 返回一个 uint8_t 向量
如果我改变会很重要
void send(Packet packet)
到
void send(Packet& packet)
与这个问题无关,但在性能方面。
【问题讨论】:
标签: c++ boost boost-asio