我需要传达两个应用程序,一个用C ++服务器和一个c#客户端。
我试图在服务器和绑定器C#NetMq上使用0MQ。 我可以从客户端进行连接,并从客户端向服务器发送消息,但不发送消息。客户端等待并且不接收服务器的发送。
一些例子?
服务器:
try
{
zmq::context_t context (1);
zmq::socket_t socket(context, ZMQ_PAIR);
socket.bind ("tcp://*:5556");
zmq::message_t request;
// just once
for(;;)
{
zmq::message_t request;
socket.recv (&request);
std::cout << "Received" << std::endl;
std::string msg_str(static_cast<char*>(request.data()), request.size());
std::cout << msg_str << std::endl;
zmq::message_t reply (5);
memcpy (reply.data (), "Hello", 5);
boost::this_thread::sleep_for(boost::chrono::milliseconds(2000));
socket.send(reply);
}
客户端:
using (var requestSocket = new RequestSocket(">tcp://192.168.70.150:5556"))
{
Console.WriteLine("requestSocket : Sending 'Hello'");
requestSocket.SendFrame("Hello");
var message = requestSocket.ReceiveFrameString();
Console.WriteLine(message);
}
这是我尝试实施然后扩展的发送和响应的一个简单示例。
答案 0 :(得分:1)
代码问题:
切换到C ++上的ZMQ_REP套接字应该可以解决您的问题。 gather instructions有关套接字类型的详细文档,Here对这些套接字上构建的通信模式有很好的描述。