new Thread(){
public void run(){
try {
service=new DatagramSocket(PORT);
mExecutorService = Executors.newCachedThreadPool(); //创建线程池
//加一个扫描来连接客户端
while(true){
mExecutorService.execute(new Service());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
需要在那边加一个扫描同一WiFi中的手机客户端 这个代码该怎么写啊 请大神指点我一下 告诉我个具体思路 或者给我点大致的框架代码 也可以 谢谢了 我是个很白的小白 第一次做项目 很多都搞不懂 请有经验的帮我下 谢谢了!!
这个估计就是飞鸽传书的原理。例如同局域网(192.168.1.x)连10台手机,同时打开APP,每个APP打开
Socket
监听某端口(例如10001
),你的手机向局域网每个ip发出Socket
请求,如果某个ip能连上,证明客户端打开并监听该端口。接收方:
发送方(你手机)
只要
new Socket(...)
能执行下去,不抛Exception
,证明192.168.1.xxx
有客户端打开并监听这个端口。特殊情况,如果其他APP同时监听那个端口,
socket
也可能请求成功,不过概率很少啦,有上万个端口。如果程序非常严格,那就Socket
连上后,发一个信息,要接收方回复信息,才判断是本APP监听该端口。