Как отправить сообщение от клиента C# на сервер C ++ с помощью ZeroMQ - PullRequest
0 голосов
/ 10 июля 2020

Я делаю приложение, которое работает в трех разных частях. Один сервер работает в C ++ и два клиента работают в C # и Python. Клиент подключается к серверу и отправляет сообщение.

Для этого я выбрал ZeroMQ.

Поскольку это PO C, код прост.

Код сервера (C ++) (cppzmq)

zmq::context_t context{ 1 };
zmq::socket_t socket{ context, zmq::socket_type::rep };
socket.bind("tcp://*:5555");
zmq::message_t request;
socket.recv(request, zmq::recv_flags::none);

Python Клиент (pyzm)

context = zmq.Context()
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
socket.send(b"Hello")

C# клиент (NetMQ)

using(var socket =  new RequestSocket())
{
    socket.Connect("tcp://localhost:5555");
    byte[] msg = Encoding.ASCII.GetBytes("HEllo");
    socket.SendFrame(msg);
 }

Соединение между клиентом Python и сервером установлено успешно, и сервер получает сообщение, отправленное клиентом. Но соединение между C # клиентом и сервером некорректно. На стороне C # предполагается, что вы успешно подключились и передали сообщение, но сервер не отражает никаких изменений (как если бы вы не получали звонок).

В чем может быть причина ?

...