i currently play around with ZMQPP client server program. I attempt send an array of data
in client.cpp
int main(int argc, char *argv[])
{
  const std::string endpoint = "tcp://127.0.0.1:5555";
  const std::string  text = "helloWolrd!";
  int arr[5]= {5,4,3,2,1};
  // initialize the 0MQ context
  zmqpp::context context;
  // generate a push socket
  zmqpp::socket_type type = zmqpp::socket_type::push;
  zmqpp::socket socket (context, type);
  // open the connection
  std::cout << "Connecting to 0MQ server…" << std::endl;
  socket.connect(endpoint); 
  int action;
  
  zmqpp::message message;
  int  value=100;
  message <<text<<value<<arr;
  socket.send(message);
}
in server.cpp
#include <zmqpp/zmqpp.hpp>
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
  const string endpoint = "tcp://127.0.0.1:5555";
  // initialize the 0MQ context
  zmqpp::context context;
  // generate a pull socket
  zmqpp::socket_type type = zmqpp::socket_type::pull;
  zmqpp::socket socket (context, type);
  // bind to the socket
  cout << "Binding to " << endpoint << "..." << endl;
  socket.bind(endpoint);
  // receive the message
  cout << "Receiving message..." << endl;
  zmqpp::message message;
  // decompose the message 
  socket.receive(message);
  cout<<"decomposed msg successfully"<<endl;
  string text;
  uint8_t number;
  int arr[5]= {0};
  message>>text>>number; //this will print hellowolrd and and 100 as expect
  // how to receive the array data?
  
  cout << "Received text:\"" << text<<endl;
  cout <<"number is"<<number<<endl;
  cout<< "arr[5]: is" << arr[5]<< endl;
  cout << "Finished." << endl;
}
At the moment i don't know how to accept the array data from client, also can my client program pack the array into message as shown below?
message <<text<<value<<arr; 
Please let me know if there is a better approach to send/receive array/vector of data from client to server using zmqpp.
 
Aucun commentaire:
Enregistrer un commentaire