2010-12-03 4 views
1

Je suis en train d'exécuter le ZeroMQ multithreaded C++ server example, qui construit très bien avecZeroMQ serveur multi-thread C exemple d'erreur d'exécution

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

En utilisant OS X 10.6.5, la version gcc 4.2.1 (build Apple Inc. 5664), et la dernière branche maître de zeromq2 (1er déc). Cependant je reçois une erreur d'exécution immédiatement après avoir commencé le serveur (avec ./server)

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

est le code fourni sur le blog ne sont plus en cours? Ou ou ai-je mal configuré? ZMQ semble bien fonctionner pour moi sur cette machine (simple requête/réponse socket patterns).

Répondre

1

Ridicule. "tcp://localhost:5555" échouera, mais "tcp://127.0.0.1:5555" fonctionne très bien.

Mise à jour 1:

/etc/hosts a une entrée pour localhost donc je ne crois pas que ce soit le problème. J'ai également essayé d'utiliser tcp://lo:5555 sans succès.

+0

À quoi ressemble votre fichier hôte? Sur certaines distributions Linux récentes, j'ai vu le fichier hôte ne pas avoir une entrée pour localhost, ils ont plutôt une entrée pour localhost-localdomain. Par conséquent, localhost ne résout pas. – stonemetal

+0

Je pense que c'est 'tcp: // lo: 5555' –

+0

C'est un bug ZeroMQ - je viens de frapper la même chose et tracée à travers ZeroMQ. Il essaie de résoudre le nom d'hôte en tant que nom d'interface réseau et échoue. J'ai fait un changement rapide à la bibliothèque et il semble fonctionner et postera aux gens de ZeroMQ. – atrn