Я делаю приложение, которое работает в трех разных частях. Один сервер работает в 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 # предполагается, что вы успешно подключились и передали сообщение, но сервер не отражает никаких изменений (как если бы вы не получали звонок).
В чем может быть причина ?