我有一个作为接入点(又名 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/