2010-12-03 2 views
1

나는ZeroMQ C++ 멀티 스레드 서버 예를 들어, 런타임 오류

$ g++ server.cpp -lpthread -lzmq -o server -Wall 

사용하여 OS X 10.6.5, GCC 버전 4.2.1 (Apple Inc.의 빌드 괜찮 빌드 ZeroMQ multithreaded C++ server example를 실행하기 위해 노력하고있어 5664), zeromq2의 가장 최신 마스터 브랜치 (12 월 1 일). 내가

terminate called after throwing an instance of 'zmq::error_t' 
what(): Operation not supported by device 

(./server과) 서버를 시작 직후 그러나 나는 더 이상 현재 블로그에서 제공하는 코드를 런타임 오류를인가 받고 있어요? 또는 잘못 구성 했습니까? ZMQ는이 머신에서 나에게 잘 작동하는 것 같다 (간단한 요청/응답 소켓 패턴).

답변

1

어리석은. "tcp://localhost:5555"은 실패하지만 "tcp://127.0.0.1:5555"은 정상적으로 작동합니다.

업데이트 1 :

/etc/hosts 그래서 나는 그 문제 야 생각하지 않는다 localhost에 대한 항목이 있습니다. 나는 또한 성공을 위해 tcp://lo:5555을 사용해 보았습니다.

+0

호스트 파일은 어떻게 생겼습니까? 최근 Linux 배포판에서 호스트 파일에 localhost 항목이 없다는 것을 보았습니다. 대신 localhost-localdomain 항목이 있습니다. 따라서 localhost가 해결되지 않습니다. – stonemetal

+0

나는 그것이'tcp : // lo : 5555'라고 생각한다. –

+0

그것은 ZeroMQ 버그이다 - 나는 똑같은 것을 치고 ZeroMQ를 추적했다. 호스트 이름을 네트워크 인터페이스 이름으로 해석하고 실패합니다. 나는 도서관을 빨리 바 꾸었습니다. 그것은 작동하는 것처럼 보이고 ZeroMQ 사람들에게 올릴 것입니다. – atrn