gpt4 book ai didi

c++ - 带有 AWS EC2 的 ZeroMQ 服务器/客户端

转载 作者:可可西里 更新时间:2023-11-01 10:46:17 26 4
gpt4 key购买 nike

您好,我写了一个非常简单的 ZMQ 服务器和客户端应用程序。它在我的本地机器上运行良好,如果我从 AWS(同一安全组)内运行这两个应用程序,它也能正常运行。我尝试在 AWS 安全组中打开正确的端口(入站和出站)。我什至将它们开放给任何端口/地址上的所有流量。但是我没有在我的客户端上收到发布的消息。

我的客户端代码是这样的

#include <string>
#include <iostream>
#include "zmq.hpp"

static std::string s_recv (zmq::socket_t &socket)
{
zmq::message_t message;
socket.recv(&message);
return std::string(static_cast<char*>(message.data()), message.size()-1);
}

int main (int argc, char* argv[])
{
std::string adrStr = argv[1];
zmq::context_t context (1);
zmq::socket_t subscriber (context, ZMQ_SUB);

std::cout << "Connecting to server..." << std::endl;
subscriber.connect(adrStr.c_str());
const char *filter ="Sending ";

subscriber.setsockopt(ZMQ_SUBSCRIBE, filter ,strlen(filter));

int update_nbr=0;
for (update_nbr=0; update_nbr<100; update_nbr++)
{
zmq::message_t update;
std::string msg_s=s_recv(subscriber);
std::cout<<"Received something..."<<msg_s<<std::endl;
}

return 0;
}

我的服务器端代码是这样的

#include <string>
#include <iostream>
#include "zmq.hpp"

int main ()
{
// Prepare our context and socket
zmq::context_t context (1);
zmq::socket_t publisher (context, ZMQ_PUB);

std::cout << "Binding to port ..." << std::endl;

publisher.bind("tcp://*:5556");

int cnt =0;
while(1)
{
char buffer[30];
int msgn=0;
msn = sprint_s(buffer, "Sending number %d", cnt);
std::cout<<buffer<<std::endl;
zmq::message_t message(30);
memcpy((void*) message.data(), buffer,30);

publisher.send(message);

Sleep(1);
cnt++;
}

return 0;
}

在客户端应用程序命令行中,我尝试传入格式正确的公共(public) DNS“TCP://public-dns:5556”我还尝试使用公共(public) TCP/IP

有人知道我可能遗漏了什么吗?

最佳答案

好吧,感谢帮助我弄清楚这里发生了什么的 friend :

基本上,该应用程序在 Windows Server 2012 实例上运行,Windows 防火墙阻止了任何流向我的应用程序的流量。将应用程序添加到 Windows 防火墙的允许应用程序列表中就可以了。

所以这里是关于如何使它工作的回顾

我的服务器应用程序现在绑定(bind)到 tcp://*:5556,我的客户端连接到 tcp://public-ip:5556

通过EC2控制台管理,添加安全组规则

端口 5556 上的自定义 TCP Aywhere

在服务器上确保将服务器可执行文件添加到允许的应用程序列表中。

关于c++ - 带有 AWS EC2 的 ZeroMQ 服务器/客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23944907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com