在C ++中使用zmq接收消息字符串

时间:2016-10-12 14:48:20

标签: c++ sockets c++11 gps zeromq

我正在尝试使用带有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;
}

我可以在不拼接字符串的情况下解决这个问题吗?

由于

0 个答案:

没有答案