3

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

    serverSocket = new ServerSocket(serverPort);

    serverSocket.setReuseAddress(true);

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

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

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

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

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

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

编辑:

我将端口更改为 8988,现在它可以正常工作了!...可能是防火墙问题吗?任何想法如何解决这个问题?

4

1 回答 1

0

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

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

于 2014-11-20T20:19:34.813 回答