我有一个作为接入点运行的安卓设备(又名 wifi 热点),它正在运行以下代码:
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"上接受?(我可以这样做吗?这是安卓设备上的防火墙问题吗?
任何解决方案/想法/建议不胜感激!
编辑:
我将端口更改为 8988,现在它工作正常!可能是防火墙问题吗?任何想法如何解决这个问题?
是的,您还需要在服务器端打开套接字。
您应该尝试Android旧版WiFiDirectDemo
可访问的Android示例:Androidandroid-studiosdksamplesandroid-19legacy
将其导入您的环境并尝试一下。