2013-03-11 3 views
1

두 개의 다른 시스템을 사용하여 zmq REP/REQ HelloWrold 예제를 실행하고 싶습니다. 소스 코드는 여기에 있습니다 : CLIENT : http://zguide.zeromq.org/cpp:hwclient SERVER : 나는 공용 IP 주소와 클라우드 시스템에서 서버 및 NAT 뒤에있는 내 컴퓨터에 클라이언트를 실행 http://zguide.zeromq.org/cpp:hwserver공용 IP와 NAT 뒤의 IP간에 ZeroMQ REP/REQ가 작동하지 않습니다.

. 주소가 도달 할 수 있는지 (IP에 ping) 포트가 열려 있는지 (netcat 사용) 확인했습니다.

클라이언트가 메시지를 보내면 서버는 메시지를 수신하고 동일한 소켓을 사용하여 응답 메시지를 다시 보내지만 클라이언트는 메시지를받지 못합니다.

이 예제를 로컬 또는 다른 geografic 영역에있는 두 개의 클라우드 컴퓨터 (공용 IP 사용) 사이에서 실행하면 작동합니다.

누군가가 그 이유를 알고 있습니까?

답변

0

libzmq의 우분투 (양적) ppa에 문제가 있음을 발견했습니다. 웹 사이트에서 가져온 libzmq-3.2.2를 사용하면 제대로 작동합니다.

0

호환되지 않는 버전 (호환되지 않는 프로토콜이있는 일부 알파/베타 버전이 있음)이 원인 일 가능성이 큽니다. FAQ 질문입니다. http://www.zeromq.org/area:faq#toc6

+0

동일한 버전 (3.2.2)으로 컴파일 된 클라이언트/서버 hellowold 예제를 시도했습니다. 이 ppa https://launchpad.net/~chris-lea/+archive/zeromq 버전을 사용하면 작동하지 않지만 웹 사이트에서 다운로드 한 버전을 사용하면 작동합니다. – Yuri

관련 문제