2012-09-14 5 views
1

저는 간단한 C++ PUB와 Python SUB를 설정하여 C++ 측을 단순한 DLL로 만들 계획입니다. 파이썬과 비슷한 설정을 한 경험이 있습니다. 문제는 없습니다. 나는 총 C++ 멍청 아.ZeroMQ Pub 빈 문자열 보내기

내 C++ 코드 : recv_multipart에 파이썬 SUB 스크립트()에서

#define ZMQ_EXPORT 

#include "stdafx.h" 
#include "zmq.hpp" 

int _tmain(int argc, _TCHAR* argv[]) { 
    zmq::context_t context(1); 
    zmq::socket_t publisher(context, ZMQ_PUB); 
    publisher.bind("tcp://*:6666"); 

    zmq::message_t message(5); 
    memcpy(message.data(), "Hello", 5); 

    while(true) { 
     Sleep(500); 
     publisher.send(message); 
    } 

    return 0; 
} 

결과 :

[ '']

내가하지만, 그것은 그렇지 않으면 작동하고 확신 나는 memcpy를 어떻게하고 있는지에 결함이 있다고 생각한다. 난 당신이

서브 술집의 전체 '가입'부분을/실종 생각하고

+0

당신을 위해 일한 파이썬 예제를 게시 할 수 있습니까? 나는 당신이 작은 zmq 조각을 놓치고 있다고 생각합니다. – g19fanatic

답변

3

당신은 PUB 메시지를 메시지 필터의 일종을 제공 할 필요가있다. 또한 메시지를 수신하려면 SUB가 setsockopt을 수행해야 함을 의미합니다.

예를 들어 실제로 PUB 메시지에 대한 메시지 필터가 없거나 메시지 필터가 "Hello"이고 메시지 메시지가 빈 문자열 인 경우를 보여줍니다.

+0

네 말이 맞아. 나는 그것이 C++ 코드라고 확신했지만, 보통 python에서 send_multipart ([...])를 사용하게 될 것이다. 감사. –

+0

문제 없음 :) 때로는 서로 다른 바인딩간에 섞여서 간단한 문제가 발생하는 지점까지 도달 할 수 있습니다. – g19fanatic