我有一个作为接入点(a.k.a. 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网络,则服务器的Socket.accept();会工作得很好!我使用的是端口8080.
我是否需要告诉服务器套接字接受“ap0”接口? (我能这样做吗?) 它是Android设备上的防火墙问题吗?
感谢任何解决方案/想法/建议!
修改
我将端口更改为8988,现在它工作得很好! ... 这可能是防火墙问题吗? 有任何想法如何解决这个问题?
答案 0 :(得分:0)
是的,您还需要在服务器端打开套接字。
您应该尝试在Android旧版中访问的Android示例WiFiDirectDemo
:\Android\android-studio\sdk\samples\android-19\legacy
只需将其导入您的环境并试一试..