java - 怎么在服务端(TV)写一串代码 可以扫面到连接在同一WiFi中的手机客户端
PHPz
PHPz 2017-04-17 16:30:40
[Java讨论组]

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

PHPz
PHPz

学习是最好的投资!

全部回复(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监听该端口。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号