java - 怎么在服务端(TV)写一串代码 可以扫面到连接在同一WiFi中的手机客户端

 多米音乐_34216717 发布于 2022-10-31 18:54

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中的手机客户端 这个代码该怎么写啊 请大神指点我一下 告诉我个具体思路 或者给我点大致的框架代码 也可以 谢谢了 我是个很白的小白 第一次做项目 很多都搞不懂 请有经验的帮我下 谢谢了!!

1 个回答
  • 这个估计就是飞鸽传书的原理。例如同局域网(192.168.1.x)连10台手机,同时打开APP,每个APP打开Socket监听某端口(例如10001),你的手机向局域网每个ip发出Socket请求,如果某个ip能连上,证明客户端打开并监听该端口。

    接收方:

    ServerSocket server = new ServerSocket(10001);
    Socket socket = server.accept();

    发送方(你手机)

    Socket socket = new Socket("192.168.1.xxx", 10001);

    只要new Socket(...)能执行下去,不抛Exception,证明192.168.1.xxx有客户端打开并监听这个端口。

    特殊情况,如果其他APP同时监听那个端口,socket也可能请求成功,不过概率很少啦,有上万个端口。如果程序非常严格,那就Socket连上后,发一个信息,要接收方回复信息,才判断是本APP监听该端口。

    2022-10-31 23:19 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有