首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CZMQ: Raspberry-Pi入门

CZMQ: Raspberry-Pi入门
EN

Stack Overflow用户
提问于 2016-09-27 08:29:00
回答 1查看 183关注 0票数 0

我在台式机上制作了一个简单的client-server应用程序,并在同一台PC上成功地运行了客户机和服务器。

然后我交叉编译了这个应用程序,在覆盆子上运行。当我在raspberry上运行这个应用程序时,客户端和服务器都在raspberry上运行,它运行得非常完美。我可以看到发送和接收到的信息。

现在我把PC作为服务器,raspberry作为客户端,但是我看不到接收到的消息。这是我的密码。

PC侧代码:

代码语言:javascript
复制
zctx_t *ctx = zctx_new ();
void *reader = zsocket_new (ctx, ZMQ_PULL);
int rc = zsocket_connect (reader, "tcp://PC-IP:5555");
printf("wait for a message...\n");
while(1)
    {
        char *message = zstr_recv (reader);
        Sleep(10);
        printf("Message: %s",message);
    }
zctx_destroy (&ctx);

覆盆子侧码:

代码语言:javascript
复制
zctx_t *ctx = zctx_new ();
void *writer = zsocket_new (ctx, ZMQ_PUSH);
int rc = zsocket_bind (writer, "tcp://PC-IP:5555");
while(1)
    {
        cout<<"sending................."<<endl;
        zstr_send (writer, "HELLO");
    }
zsocket_destroy (ctx, writer);

我怎么才能让它起作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-27 11:22:00

服务器应该始终绑定到自己的接口(本地IP地址或用于所有IPv4接口的IPv4地址或用于IPv4和IPv6的0::0 )。

客户端应该始终连接到远程IP地址。

由于您希望您的PC是从Raspberry Pi客户端中提取消息的服务器,我认为您应该使用以下方法:

PC侧码

代码语言:javascript
复制
zctx_t *ctx = zctx_new ();
void *reader = zsocket_new (ctx, ZMQ_PULL);
int rc = zsocket_bind (reader, "tcp://PC-IP:5555");
printf("wait for a message...\n");
while(1)
    {
        char *message = zstr_recv (reader);
        Sleep(10);
        printf("Message: %s",message);
    }
zctx_destroy (&ctx);

覆盆子侧码

代码语言:javascript
复制
zctx_t *ctx = zctx_new ();
void *writer = zsocket_new (ctx, ZMQ_PUSH);
int rc = zsocket_connect (writer, "tcp://PC-IP:5555");
while(1)
    {
        cout<<"sending................."<<endl;
        zstr_send (writer, "HELLO");
    }
zsocket_destroy (ctx, writer);

当然,您也可以运行Raspberry Pi作为推送服务器,和PC端作为拉动客户端。在这种情况下,您可以使用:

代码语言:javascript
复制
...
int rc = zsocket_connect (reader, "tcp://raspberrypi-ip:5555");
...

以及:

代码语言:javascript
复制
...
int rc = zsocket_bind (writer, "tcp://raspberrypi-ip:5555");
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39719768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档