我正在使用 C++ 开发一个应用程序,并且在使用 boost 套接字时遇到了一些困难。服务器发送图像但客户端未收到所有字节;客户端总是比服务器发送的少大约 500 个字节。下面提供的是程序运行的相关代码和截图。
服务器代码:
int sent = boost::asio::write(*socket, response, boost::asio::transfer_all(), error);
std::cout << "Sent: " << sent << std ::endl;
客户端代码(我知道如果服务器发送的总字节数可被 10000 整除,read_some 将阻塞;此代码仅用于测试):
int len = 0;
int count = 0;
do {
len = socket->read_some( boost::asio::buffer( imageData, 10000 ) );
count += len;
std::cout << "len: " << len << std::endl;
std::cout << "count: " << count << std::endl;
} while(len == 10000);
std::cout << "Image Received of size: " << count << std::endl;
服务器截图:
客户端截图:
谢谢你的时间; 任何帮助或建议将不胜感激。