iOS:GCDWebServer 在设备上不起作用

Posted

技术标签:

【中文标题】iOS:GCDWebServer 在设备上不起作用【英文标题】:iOS: GCDWebServer does not work on device 【发布时间】:2015-08-06 07:50:35 【问题描述】:

我使用 GCDWebServer,确切地说是 WebUploader。当我在 iPhone 模拟器上对其进行测试时,一切正常,但在设备上,当我进入时我看不到网页,例如http://192.168.2.4:8080 到浏览器。我的浏览器连接超时。

我通过 WiFi 连接到同一个网络,我在控制台中没有看到任何错误,那么可能是什么问题?我使用的是 ios 8。

【问题讨论】:

比较 Mac 和 iPhone 的网络设置。 我到底应该比较什么?所有 WiFi 设置都相同。 他们在同一个子网吗? 是的,一切都是通过 DHCP 配置的。 【参考方案1】:

您确定您使用的是正确的端口吗?在 iOS 设备上运行时,默认端口是80,而不是8080

在应用运行时查看 Xcode 中的日志,它会准确告知 GCDWebServer 的 IP 地址和端口。

您获得连接超时而不是未找到错误这一事实可能意味着其他原因正在阻止连接打开。确保该应用在您的 iOS 设备上处于活动状态,否则服务器可能会暂停。

另外请尝试重新启动您的 iOS 设备,iOS 中存在一个罕见的错误,即应用以前使用的侦听套接字可能会“卡住”几分钟,即使应用已被终止。

如果这仍然不起作用,则很可能是 WiFi 路由器问题,您的计算机和 iOS 设备之间的流量被阻塞。

【讨论】:

是的,在我有端口 80 的设备上,应用程序处于活动状态。我也尝试在自定义端口上启动 Web 服务器,但它也不起作用。 那么听起来确实像是 WiFi 路由器的问题:尝试使用不同的 WiFi 网络和/或尝试从另一台计算机(甚至您的 iOS 设备)连接到您计算机上运行的 GCDWebServer。 你说得对,一定是网络有问题。我检查了另一个网络,它可以工作。谢谢。【参考方案2】:

如果连接到不同的 wifi 网络,GCDWebServer 将无法工作。只有当手机和电脑都使用相同的 wifi 网络时,它才有效。如果我希望 GCDWebServer 即使使用不同的 wifi 网络也能正常工作,我必须做什么。 @波尔

【讨论】:

【参考方案3】:

GCDWebServer 是一个非常轻便且值得信赖的 Web 服务器。 我一直在发布能够动态创建播放列表的 WebDAV 音乐流媒体。 在创建播放列表时,它会发送大量异步 NSURLSession。 除了 GCDWebServerOption_MaxPendingConnections 的值外,无需修改原始源代码。 我认为 GCDWebServerOption_MaxPendingConnections=16 对于异步目录遍历来说似乎很小。 所以我设置了 GCDWebServerOption_MaxPendingConnections=64。 现在我很少看到上面“卡住”了,目录遍历的速度有了显着的提高。

【讨论】:

以上是关于iOS:GCDWebServer 在设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥 tailwind css 在 iPhone ios 设备上不起作用?

transform:翻译动画在 iOS 15.1 设备上不起作用

一些 javascript 函数在 iOS 设备(iPhone、iPad)上不起作用

Ionic 2 动画在 iOS 设备上不起作用

`UIApplication.shared.canOpenURL(:)` 方法在 iOS 11.4(仅限 iPad 设备)上不起作用?

addUIInterruptionMonitor() 在运行 iOS 14.0.1 的设备上不起作用