如何在防火墙后的iPhone上设置http服务器

如何在防火墙后的iPhone上设置http服务器

问题描述:

我想开发具有简单即时消息功能的iPhone应用程序。我正在考虑在iPhone上设置HTTP服务器。如果iPhone使用的是WiFi并位于防火墙后面,我如何确保其他iPhone客户端可以连接到它?如何在防火墙后的iPhone上设置http服务器

防火墙不会像NAT那样干扰连接。

当您通过无线路由器连接互联网时,您正在通过NAT进行浏览。这意味着你没有真正的外部IP,但是一旦你启动了连接,路由器就会将你的内部IP映射到他的一个外部端口,并且在特定的时间窗口,如果他将把它连接到正确的端口,他会将连接传递给你。

也就是说,除非您可以在路由器和内部静态IP中配置端口转发,否则在NAT后面没有设置服务器的实际方法。

希望我是很清晰,运气好的话

我真的不认为你需要获得一个HTPP服务器并在iPhone上运行,使能发送和接收消息的应用程序(IM)。让一个iPhone用户直接相互连接的想法对我来说并不合适,因为用户需要知道彼此的IP地址才能做到这一点。

聊天的不同用户之间的互连可以通过使您的应用程序通过专用的TCP端口进行通信来解决。通常建议选择数字高于1024的端口,因为下面的端口通常位于所谓的well-known ports的列表中,并用于Web(如端口80),FTP(端口21),SSH(22),DNS (53)等,用户有责任确保应用程序使用的端口在防火墙上是开放的。为了解决这个问题,如果您发现您选择的端口被阻塞,您实际上可以使用端口80进行通信。你可以这样做,因为你知道在大多数情况下这个端口不会被阻塞。据报道,当防火墙阻止其用于通信的端口时,Yahoo Messenger会使用此技术。

应用程序使用该端口连接到实际存储用户凭证的Web服务器,执行身份验证,消息传输等,并且服务器应驻留在有能力的硬件上以支持大量同时连接。我可以建议使用VPS(如Linode提供的)或云(如Amazon EC2,Google Application Engine,Rackspace)。