我有一个作为接入点(又名 Wi-Fi 热点)运行的 Android 设备,并且它正在运行以下代码:
serverSocket = new ServerSocket(serverPort);
serverSocket.setReuseAddress(true);
while (RUNNING) {
try {
final Socket socket = serverSocket.accept();
我会让其他客户端设备连接到该设备的 Wi-Fi 热点,并尝试连接到套接字,但无法连接。
接入点的 IP 地址类似于 192.168.43.1,因此我尝试从客户端设备连接到 192.168.43.1:8080,但它不起作用。
但是,如果两个设备都连接到另一个 Wi-Fi 网络,
serverSocket.accept();
就可以正常工作!我使用的是 8080 端口。
我需要告诉服务器套接字在接口“ap0”上接受吗? (我可以这样做吗?)
我将端口更改为8988,现在工作正常了。是安卓设备的防火墙问题吗?
有什么想法可以解决这个问题吗?
是的,您还需要在服务器端打开套接字。
您应该尝试 Android 示例
WiFiDirectDemo
可在 Android 旧版中访问:\Android\android-studio\sdk\samples\android-19\legacy
只需将其导入到您的环境中并尝试一下..