我正在尝试使用带有Zero MQ的tcp将简单的c ++客户端连接到GPS服务器。我不控制GPS服务器。
gps服务器发送:$ GPGGA,143949.8330,520168215,N,00831.385282,E ,,,, 173.856,M ,,,, * 26
但是当我打印结果时,我的客户已经分开了答案:
$ GPGGA,143949.8330,5201
68215,N,00831.385282,E ,,,, 173.856中,M ,,,, * 26
我不能说等待123字节的数据,因为NMEA字符串的大小可能不同。
这是我的代码:
#include <zmqpp/zmqpp.hpp>
#include <string>
#include <iostream>
int main(void){
const std::string endpoint = "tcp://127.0.0.1:3000";
// initialize the 0MQ context
zmqpp::context context;
zmqpp::socket_type type = zmqpp::socket_type::pull;
zmqpp::socket socket(context, type);
socket.connect(endpoint);
while(true){
std::string data_str{""};
socket.receive(data_str);
std::cout << data_str << std::endl;
}
return 0;
}
我可以在不拼接字符串的情况下解决这个问题吗?
由于