:)1:不用MulticastSocket,如何发广播?想用Socket发广播!说明白需求:局域网聊天工具,在软件登录的时候,广播一条msg,然后,登陆过的用户可以接受这条msg来,刷新用户列表同时返回去一个msg。用于让刚登陆的机器建立用户列表因为不想多建个MulticastSocket和DataGramSocket!所以想利用已经打开的Socket!
2:如何在java中调用DOS命令(例如:NET VIEW),要取得返回值3:大家喜欢用什么广播?

解决方案 »

  1.   

    2。可以使用Runtime类的exec()方法执行dos命令,取得命令的返回值(应该是执行命令的结果吧)可以利用输出重定向,然后读取文件即可。
      

  2.   

    1,没试过,你可用主机位全1的广播地址测试一下
    2,同一楼上观点,具体做法请参照:
    http://blog.csdn.net/yanqlv/archive/2005/10/09/497624.aspx
    的处理方式.
    3,当然是基于D类地址的多播,局域网的话可直接指定224.0.0.1,
    因为该地址只能用于源地址,不能用于目的地址,因此使用它并
    不影响A,B,C类原有地址的使用
      

  3.   

    1.说明白需求:局域网聊天工具,在软件登录的时候,广播一条msg,
    然后,登陆过的用户可以接受这条msg来,刷新用户列表
    同时返回去一个msg。用于让刚登陆的机器建立用户列表
    -------------------------------------------------
    这根本就不是广播吧,这明明就是点对点啊,呵呵
    当服务器接收到客户端登陆时,给客户端发送所谓的“广播消息”
    其实就是收到客户登陆消息后,给客户端发送一个固定的消息而已2.楼上已经说的很详细了3.即然用不到广播,也就不用说了吧^_^
      

  4.   

    回复人: zyg158((DD)OTP) ( ) 信誉:100  2005-12-10 17:43:00  得分: 0  
     
     
       1.说明白需求:局域网聊天工具,在软件登录的时候,广播一条msg,
    然后,登陆过的用户可以接受这条msg来,刷新用户列表
    同时返回去一个msg。用于让刚登陆的机器建立用户列表
    -------------------------------------------------
    这根本就不是广播吧,这明明就是点对点啊,呵呵
    当服务器接收到客户端登陆时,给客户端发送所谓的“广播消息”
    其实就是收到客户登陆消息后,给客户端发送一个固定的消息而已
    也许把,不过,可是刚登陆上来,没有用户列表阿难道用socket从0试到255??给个好的解决方案也可以,只要能实现所说的需求就可以了!
      

  5.   

    关于问题2:我再问一下:linux有net view命令么?
      

  6.   

    或者这样说吧:软件登录的时候,能通知所有登陆过的机器,让他们刷新用户列表同时返回一个信息,让他通过这些信息来建立用户列表
    这个应该有方法吧!请给个好的解决方案!(希望能够用到Socket,因为我打开Socket(1000)用来接受发来的msg)
      

  7.   

    线程实现
    我现在封装Socket类呢
    我的想法是封装成类似VB的Winsock控件
    现在有点难题,不过很快就解决了用我的类可以轻松实现广播
    给我你的mail
    我的是[email protected]
      

  8.   

    我写过一个和你的一样的程序,用的是udp的广播,建立点对点联接时才用socket
      

  9.   

    3ks我的mail:[email protected]给你发过邮件了!
      

  10.   

    回复人: Mervyn(御剑乘风来,除魔天地间。) ( ) 信誉:100  2005-12-10 19:38:00  得分: 0  
     
     
       我写过一个和你的一样的程序,用的是udp的广播,建立点对点联接时才用socket
      
     
    但是接受的时候不是得用DatagramSocket!因为有不同的用户,难道每个用户除了开Socket还有开DatagramSocket(等其他人登陆)?
      

  11.   

    最新的用户列表始终存放在服务器上,每当一个客户端登陆时,都会给服务器发送登陆请求,这时服务器就可以将这个用户添加到用户列表中了,然后向列表中的每个用户发送一个有xx客户登陆的通知,让其他客户端更新自己的用户列表。
    该用户登陆成功后自动从服务器上下载现在在线的所有用户列表信息。用户退出时是同样的原理。用户非正常退出情况
    服务器定时的向各个客户端发送是否在线的确认数据包,如果得到正常反馈说明在线;否则就认为该客户已下线,向现在的客户列表中的除了这个客户的其他客户端发送该客户端下线通知,使之更新用户列表以上所有操作均不是广播地址,都是通过点对点方式通信的
    试想一下:
    腾讯的QQ会在有人上线的时候向所有的ip地址发送广播信息吗,显然不会,光ip地址数都数不清
    我说的是极端情况
    换成局域网也有问题,比如客户端和服务器、或客户端之间不在同一个网段,
    那种发送广播地址的做法不就行不通了
      

  12.   

    回复人: zyg158((DD)OTP) ( ) 信誉:100  2005-12-10 21:24:00  得分: 0  
     
     
       最新的用户列表始终存放在服务器上,每当一个客户端登陆时,都会给服务器发送登陆请求,这时服务器就可以将这个用户添加到用户列表中了,然后向列表中的每个用户发送一个有xx客户登陆的通知,让其他客户端更新自己的用户列表。
    该用户登陆成功后自动从服务器上下载现在在线的所有用户列表信息。用户退出时是同样的原理。用户非正常退出情况
    服务器定时的向各个客户端发送是否在线的确认数据包,如果得到正常反馈说明在线;否则就认为该客户已下线,向现在的客户列表中的除了这个客户的其他客户端发送该客户端下线通知,使之更新用户列表以上所有操作均不是广播地址,都是通过点对点方式通信的
    试想一下:
    腾讯的QQ会在有人上线的时候向所有的ip地址发送广播信息吗,显然不会,光ip地址数都数不清
    我说的是极端情况
    换成局域网也有问题,比如客户端和服务器、或客户端之间不在同一个网段,
    那种发送广播地址的做法不就行不通了
      
     ------------------------------------------------------
    没有服务器!你知道IPMessage这个软件么?这个软件没有服务器,都是客户端!局域网内谈话很方便的!我们公司拿它作项目交流的工具!其实这种软件,根本不考虑像qq那么大的应用!只是考虑给这个网段的255个IP用的!
      

  13.   

    广播接收端加flag接收标志返回
      

  14.   

    xxuu503(学会糜烂和挥霍,恐惧不安和堕落!) 
    是上海中和的???????
      

  15.   

    回复人: redgirl520(小鱼鱼) ( ) 信誉:100  2005-12-11 10:31:00  得分: 0  
     
     
       xxuu503(学会糜烂和挥霍,恐惧不安和堕落!) 
    是上海中和的???????
      
     
    不是哪儿的,哪儿待遇如何?:)
      

  16.   

    只会第二个郁闷,网络俺不懂.
    Runtime.getRuntime().exec()可以执行命令.读取stdout用Process.getInputStream()