假设我有 iPhone、Android 或嵌入式系统,我想使用 Socket 编程在它们之间建立连接,移动到嵌入式系统。
使用移动和嵌入式系统的80端口建立连接可以吗?
我可以将端口 80 硬编码到移动和嵌入式系统的代码中吗?
通常,在 Unix 风格的系统上,低于 1024 的端口被认为是“特权”,Android 和 iOS 都从这些系统中继承了大部分基本的底层功能设计。
您将无法在安全(典型的消费者、未破解的)Android 设备上使用端口 80。
虽然我没有尝试过,但我希望您也无法在 iphone 上使用 - 我见过的 iOS 应用程序创建了一个 Web 服务器来公开所选数据,通常在非特权范围内使用更高的端口号。
您有两种选择端口号的通用选项:猜测一个安全的默认值(可能已经习惯性地用于您想要的功能类型 - 8080 是非特权 http 服务器的常见选择)并允许用户在需要时更改它一些配置菜单,或者选择一个随机的空闲端口并通知用户它是什么,以便他们可以在另一端输入。
另请注意,您通常只能在手机位于 wifi 网络上时将流量定向到手机。将这两个要求放在一起,访问您的嵌入式服务器可能是通过类似的 URL
http://192.168.0.111:8080/somepage.html
当然,IP 地址、端口号和 URL 的其余部分对于您的实际运行时情况是正确的。