import  java.io.*;
import  java.net.*;
import  java.net.InetAddress;public  class  Send  {
       private  int  port=6789;
       
           
       public  Send()  {
       }
       public  void  p2pSend(String  msg,String  ip){
                 try  {
                       
                       InetAddress  ia=InetAddress.getByName(ip);
                       DatagramSocket    ds=new  DatagramSocket();
                       byte[]  buf  =  msg.getBytes()  ;
                       DatagramPacket  dp  =  new  DatagramPacket(buf,  buf.length,  ia,  8888);
                       ds.send(dp);
                       ds.close();
       }catch(Exception  ex)  {
         System.out.println("无法发送消息:"  +  ex  );
       }
       }
       public  void  allSend(String  msg){
           try  {
                       InetAddress  group  =  InetAddress.getByName("234.5.6.7");
                       MulticastSocket  socket  =  new  MulticastSocket(6789);
                       socket.joinGroup(group);
                       DatagramPacket  hi  =  new  DatagramPacket(msg.getBytes(),msg.getBytes().length,group,6789);
                       socket.send(hi);
                       socket.close();
               }catch(Exception  ex)  {
                       System.out.println("无法发送消息:"  +  ex  );

解决方案 »

  1.   

    p2pSend 给一个人发allSend 给一个组的所有人发
      

  2.   

    答:
     public  void  p2pSend(String  msg,String  ip){ //向该ip,端口号为8888的对方发msg
                    try  { 
                          
                          InetAddress  ia=InetAddress.getByName(ip); 
                          DatagramSocket    ds=new  DatagramSocket(); //创建一个UDP Socket
                          byte[]  buf  =  msg.getBytes()  ; 
                          DatagramPacket  dp  =  new  DatagramPacket(buf,  buf.length,  ia,  8888); //构造一个发送用的UDP包。包上指定对方的IP与端口号
                          ds.send(dp); //发送该UDP包
                          ds.close(); //关闭UDP Socket
          }catch(Exception  ex)  { 
            System.out.println("无法发送消息:"  +  ex  ); 
          } 
          } 
          public  void  allSend(String  msg){ 
              try  { 
                          InetAddress  group  =  InetAddress.getByName("234.5.6.7"); 
    //组播组:234.5.6.7
                          MulticastSocket  socket  =  new  MulticastSocket(6789); 
                          socket.joinGroup(group); //加入该组播组,成为组中成员。
                          DatagramPacket  hi  =  new  DatagramPacket(msg.getBytes(),msg.getBytes().length,group,6789); //构造一个发送用的UDP包(内含要发送的信息),用于向指定组中发,端口号:6789
                          socket.send(hi); //发送该UDP 包。此时:只有该组中的成员才能收到该UDP包。
                          socket.close(); //关闭组播的Socket。
                  }catch(Exception  ex)  { 
                          System.out.println("无法发送消息:"  +  ex  );