从客户端到服务器(JSON)的额外数据
Extra data from client to server (json)
我尝试将字符串发送(作为服务器)。但是服务器获得了此JSON的一些额外数据:
(发送)
{ "#":" 147", " tableid":" sm_userkey"}
(got)
{ "#":" 147", " tableid":" sm_userkey"}(/*/。如何解决此问题?
(客户端)
std::stringstream ss;
boost::property_tree::write_json(ss, pt);
try{
boost::asio::ip::tcp::iostream *stream = new boost::asio::ip::tcp::iostream(ip_address, boost::lexical_cast<std::string>(9858));
stream->write(ss.str().c_str(), ss.str().length());
stream->flush();
// ss.flush();
}
catch (std::exception& e){
std::cout << "Exception: " << e.what() << std::endl;
}
(服务器)
boost::asio::io_service io_service;
boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 9858);
boost::asio::ip::tcp::acceptor acceptor(io_service, endpoint);
boost::asio::ip::tcp::iostream stream;
boost::system::error_code ec;
acceptor.accept(*(stream.rdbuf()), ec);
while (!stream.rdbuf()->available()) {}
// std::cout << "bytes available: " << stream.rdbuf()->available() << std::endl;
char buf[stream.rdbuf()->available()];
stream.read(buf, stream.rdbuf()->available());
stream.flush();
std::cout << buf << std::endl;
我从评论中的答案:
缓冲区未终止。尝试:
char buf[stream.rdbuf()->available()+1];
buf[stream.rdbuf()->available()] = ' ';
相关文章:
- 如何使用curlpp通过POST方法上传文件和json数据
- 如何在Visual C+++中从JSON文件中读取节点数据
- 如何将 json 数据附加到 Qt 中的现有 json 文件中
- 通过TCP将数据从C++客户端发送到JSON服务器
- 修复错误的 JSON 数据
- 从 JSON 读取和保存数据
- 使用 JSONCPP 将 JSON 数据增量写入文件
- 使用 jsoncpp 时从 JSon 剥离私有数据的最佳方法
- 如何将 JSON 键值(我使用 cpp boost 解析)存储在相关数据结构中?
- 如何使用 C++ 中的 cpprestsdk 发布 json 数据并从本地服务器获取响应
- 比较 JSON::Value 变量中的数据,然后更新到文件
- 使用 C++ 解析 URL 中的 JSON 数据
- curl发送JSON数据不使用C 工作
- 如何使用NLHOMAN JSON将相同的密钥JSON数据合并到C 中
- 是否可以从OpenPose库中实时输出JSON数据
- 使用Nlohmann JSON将JSON数据保存在文件中时获取空值
- 如何将变量用作原始 JSON 字符串中的数据?
- 如何将 JSON 数据发送到 REST API?
- 如何以json格式保存弹性搜索的数据
- c++ rest sdk POST表单数据json