日期:2014-05-20  浏览次数:21000 次

探讨java中获取局域网中的上线IP的思路.....
在做一个局域网聊天工具..对获取局域网上线电脑IP的方法求更多思路。
1.笨办法 ,首先我想到了 ping 方法..试了下太慢..比在cmd中的慢的多..
2.在API中找了 相关的方法  反正我是没找到...也许有吧!
3.用TCP Socket 多线程连接每一个IP(端口找了个系统默认就监听的) 看有没有进入异常!异常为不在线..

不知大虾们还有没有其他更好的方法...求教..

------解决方案--------------------
选择第三种,端口可以指定为聊天软件所开的一个端口
------解决方案--------------------
肯定是第三种啊

不过第一种有快的办法,用多线程ping,我一下子ping七百多个,才十来秒
------解决方案--------------------
。。。。为什么不用udp广播呢?

http://topic.csdn.net/u/20110908/18/9d60a491-3ddb-4933-a595-9469c9df2e24.html
------解决方案--------------------
你可以建一台服务器,让服务器来保存在线列表
------解决方案--------------------
多线程ping,和你ping一个的时间一样,不过这样浪费系统资源,如果qq都像你这样来获取上线的ip互联网不得瘫痪?
正确的方法是用socket监听一个端口,有连接就记录下来,随时监听已有的连接是否断开,这个有很多方法,就是通常说的监听心跳,...............
------解决方案--------------------
三各方法全部排除
显然使用UDP广播