2012-09-14 35 views
1

我已經有了一個簡單的C++ PUB和Python SUB設置,目的是讓C++端最終構建爲一個簡單的DLL。我已經有了一些關於雙方python類似設置的經驗,而且沒有問題。不過,我是一個完整的C++ noob。ZeroMQ Pub發送空字符串

我的C++代碼:

#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; 
} 

從recv_multipart蟒蛇SUB腳本()結果:

[ '']

我相信這是工作,不然,雖然我認爲我在做memcpy時存在缺陷。

+0

你可以發佈適用於你的python示例嗎?我相信你錯過了一個小的zmq作品。 – g19fanatic

回答

3

我想你失蹤的酒吧全「訂閱」部分/子

你需要給PUB消息某種信息的過濾器。這也意味着您的SUB需要執行setsockopt才能夠接收消息。

你給出的例子顯示你實際上沒有爲你的PUB消息(或者你的「Hello」是你的消息過濾器和數據消息實際上是一個空字符串)的消息過濾器。

+0

你說得對。我確信自己是C++代碼,但我通常會在python中使用send_multipart([...])。謝謝。 –

+0

沒問題:)有時在不同的綁定之間混合可以達到他們簡單的事情是什麼導致所有的麻煩 – g19fanatic