【发布时间】:2018-12-27 12:57:20
【问题描述】:
我正在尝试使用 boost socket 发送一些数据。 TCPClient 类的作用是使连接 cna 可以发送数据抛出 sendMessage 方法。
当我在代码下执行时,它不起作用。但是,当我调试它时它可以工作。 我认为问题在于时机。
删除[] 消息;在发送消息之前工作。(只是我的想法)
所以,我想检查是否发送了 msg。 或任何其他好方法。
客户端 main() 代码
TCPClient *client = new TCPClient(ip, port);
client->sendMessage((char *)msg, 64 + headerLength + bodyLength);
delete[] msg;
下面的代码是snedMessage方法。
void TCPClient::sendMessage(const char *message, int totalLength) throw(boost::system::system_error) {
if(false == isConnected())
setConnection();
boost::system::error_code error;
this->socket.get()->write_some(boost::asio::buffer(message, totalLength), error);
if(error){
//do something
}
}
【问题讨论】:
-
“不起作用”是什么意思?数据没有发送,有错误吗?我们需要minimal reproducible example
标签: c++ multithreading sockets boost-asio