Android ServerSocket 接受作为 wifi 热点

标签 android sockets serversocket personal-hotspot

我有一个作为接入点(又名 wifi 热点)运行的 android 设备,它正在运行以下代码:

    serverSocket = new ServerSocket(serverPort);

    serverSocket.setReuseAddress(true);

    while (RUNNING) {
        try {
            final Socket socket = serverSocket.accept();

我会让一些其他客户端设备连接到该设备的 wifi 热点,并尝试连接到 socket ,但它无法连接。

接入点的 IP 地址类似于 192.168.43.1 ... 所以我将尝试从客户端设备连接到 192.168.43.1:8080,但它不起作用。

但是,如果两个设备都连接到另一个 wifi 网络,则 serverSocket.accept();会工作得很好!我正在使用端口 8080。

我需要告诉服务器套接字接受接口(interface)“ap0”吗? (我可以这样做吗?) 是安卓设备的防火墙问题吗?

感谢任何解决方案/想法/建议!

编辑:

我将端口更改为 8988,现在可以正常使用了! ... 会不会是防火墙问题? 有什么想法可以解决这个问题吗?

最佳答案

是的,您还需要在服务器端打开套接字。

您应该尝试 Android 示例 WiFiDirectDemo 可在 Android legacy 中访问:\Android\android-studio\sdk\samples\android-19\legacy 只需将其导入您的环境并试一试..

关于Android ServerSocket 接受作为 wifi 热点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27048592/

相关文章:

android - Android Jellybean (PhoneGap) 上的空白键盘输入?

android - Facebook 图片无法在 Android 中加载

linux - linux 套接字内核缓冲区是否交换到磁盘?

java - 中断正在等待来自套接字的 IO 的线程?

android - onAdClosed() 没有在应用程序中被调用

android - 将 native : Change the Entry file path index. android.js react 到指定的自定义文件路径

sockets - 我可以在 connect() 调用之后、TCP 连接建立之前对套接字进行 write() 操作吗?

c# - 下一个排队数据报的大小 - UDP

java - 如何在Java的socket中使用readObject()两次?

java - 在浏览器中显示来自字节数组的图像