备忘

181 阅读5分钟
原文链接: segmentfault.com
首页问答专栏 讲堂 更多

SegmentFault

搜索 热门标签 全部 javascriptphppython javamysqlios androidnode.js html5 linuxc++css3 git golang ruby vimdockermongodb

在 SegmentFault,学习技能、解决问题

每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

免费注册 立即登录

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

xiaojiangren 2015年12月17日提问
  • 关注 2 关注
  • 收藏 1 收藏,1.6k 浏览
问题对人有帮助,内容完整,我也想知道答案 0 问题没有实际价值,缺少关键内容,没有改进余地

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

提交评论 × 评论支持部分 Markdown 语法:**bold**_italic_[link](http://example.com)> 引用`code`- 列表
同时,被你 @ 的用户也会收到通知 默认排序 时间排序

1个回答

答案对人有帮助,有参考价值 0 答案没帮助,是错误的答案,答非所问

这个估计就是飞鸽传书的原理。例如同局域网(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监听该端口。

键盘男414 声望 提交评论 × 评论支持部分 Markdown 语法:**bold**_italic_[link](http://example.com)> 引用`code`- 列表
同时,被你 @ 的用户也会收到通知

撰写答案

同步到新浪微博 [舍弃] 提交回答

讲堂推荐 更多

Planets 想在上方展示你的广告?

相似问题

分享扩散: ••• ×Close

分享

分享到微博?

取消 分享 ×Close

关闭问题(请谨慎操作)

删除问题(请谨慎操作)

删除回答(请谨慎操作)

忽略回答

关闭理由: 删除理由: 忽略理由:

推广(招聘、广告、SEO 等)方面的内容 与已有问题重复(请编辑该提问指向已有相同问题) 答非所问,不符合答题要求 宜作评论而非答案 带有人身攻击、辱骂、仇恨等违反条款的内容 无法获得确切结果的问题 非开发直接相关的问题 非技术提问的讨论型问题 其他原因(请补充说明)

补充说明:

取消 提交 × Close

我要该,理由是:

    返回重选 取消 提交

    在 SegmentFault,学习技能、解决问题

    每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

    免费注册 立即登录
    产品
    热门问答
    热门专栏
    热门讲堂
    最新活动
    圈子
    找工作
    移动客户端
    资源
    每周精选
    用户排行榜
    徽章
    帮助中心
    声望与权限
    社区服务中心
    开发手册
    商务
    人才服务
    企业培训
    活动策划
    广告投放
    区块链解决方案
    合作联系
    关于
    关于我们
    加入我们
    联系我们
    关注
    产品技术日志
    社区运营日志
    市场运营日志
    团队日志
    社区访谈
    条款
    服务条款
    内容许可

    扫一扫下载 App

    Copyright © 2011-2018 SegmentFault. 当前呈现版本 17.06.16
    浙ICP备 15005796号-2   浙公网安备 33010602002000号 杭州堆栈科技有限公司版权所有

    CDN 存储服务由 又拍云 赞助提供

    移动版 桌面版

    回顶部

    记笔记

    标题 纯文本 Markdown Javascript CSS HTML PHP Python Ruby Go C/C++ Java Shell/Bash 空格缩进 Tabs 缩进 2 4 自动换行 不换行
    xxxxxxxxxx
    已保存 [舍弃] 保存私密笔记 保存公开笔记