c-如何通过外部IP(Mac)连接套接字



我的问题是,如何连接到romote机械上的插座?我只能连接同一网络上的插座。。

我写了一个简单的代码(在c中),模拟服务器(打开套接字并侦听客户端)。在Mac中。

我正试图将这个套接字作为客户端从iPhone连接起来(使用简单的objective-c代码)。

如果我在服务器和客户端上的互联网都在同一个网络(WiFi)上,并且在客户端中我试图连接到192.168.1.x,它就可以工作了。但当在客户端中,我尝试通过外部IP(使用相同端口)连接时,连接失败。

我从来没有做过这种事。也许我错过了什么。。我试着关掉防火墙,但无济于事。

谢谢。

编辑:如果不清楚。。我的Mac是通过路由器连接的。

在这样的设置中,"外部IP"通常是路由器的IP。很可能您需要配置路由器以将相关端口转发到内部IP地址。

也可能是这样的情况,即为了使端口转发工作,请求必须在外部(WAN)接口上传入。这取决于路由器的配置方式。如果是这样的话,你需要确保你是通过蜂窝网络而不是iPhone上的Wi-Fi连接访问外部IP的。

如果您通过本地IP地址连接到服务器(即,您通过委派的DHCP地址连接到同一本地路由器上的另一台机器),那么问题出在网络上,而不是本地机器的IP堆栈上。

你需要查看你的路由器设置。。。许多路由器会阻止许多服务,尤其是那些在自定义端口上的服务,以防止来自本地网络外部来源的恶意攻击。

最新更新