【问题标题】:Android run external Socket Server from any deviceAndroid 从任何设备运行外部 Socket Server
【发布时间】:2021-03-05 18:23:49
【问题描述】:

我想在 android 上运行一个套接字服务器,并从/向具有不同网络的其他 android 设备读取/写入数据。

问题来了:

  1. 当我尝试使用外部 IP 设置服务器时,我得到 java.net.BindException: bind failed: EADDRNOTAVAIL (Cannot assign requested address)
  2. 当我使用 IPv4 地址设置服务器时 - 来自不同网络的其他 android 设备无法连接到它。

我应该怎么做,将两个或多个安卓设备与来自不同网络的套接字链接?
重点是在任何设备上运行服务器(一个应用程序中的客户端-服务器代码)。

【问题讨论】:

    标签: java android sockets ip serversocket


    【解决方案1】:

    您无法绑定到您没有的地址。

    您需要 (a) 绑定到您的 Android 设备上的接口,并且 (b) 安排端口转发/打开从路由器到您的 Android 设备的防火墙(取决于路由器+网络配置)。

    【讨论】:

      【解决方案2】:

      您不必将服务器套接字绑定到 IP 地址。 只是不要调用 bind()。

      此外,您的服务器只有在通过 wifi 连接到路由器的 Android 设备上运行时才能访问。

      如果 Android 设备在移动连接上,则无法访问您的服务器。 ——

      【讨论】:

        猜你喜欢
        • 2011-12-08
        • 2021-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-23
        相关资源
        最近更新 更多