【发布时间】:2012-12-10 13:06:20
【问题描述】:
我已经设置了以下连接,这可以正常工作。这是一段较大的代码的一部分,它(在空闲端口)侦听传入消息。我想要做的是发布 uri,以便其他客户端可以连接到它。但是,我无法想出一种方法让 endpoint.address() 显示为正在使用的接口上的实际 IP 地址,而不是“localhost”。有任何想法吗?
tcp::resolver::query query(address, "");
tcp:: endpoint endpoint = *resolver.resolve(query);
acc.open(endp.protocol());
acc.set_option(reuse_address(true));
acc.bind(endp);
acc.listen();
tcp::endpoint endpoint = acc.local_endpoint() ;
string uri = "tcp://" + endpoint.address().to_string() + ":" + lexical_cast<string>(endpoint.port()) ;
【问题讨论】:
-
你是指PC的局域网地址还是路由器的公网地址?
-
您的 WAN 访问配置是怎样的?
-
我无法假设如何配置 WAN 访问,这必须非常笼统。我需要找到一种方法来推断其他主机可以通过该公共地址将数据包发送到此接受器
标签: c++ sockets networking boost