今天编写了一个UDP传输,出现个小问题,我编写的是两个主函数那个,也就是发送端和接收端,  而且把我写运行的是接收端,为什么运行发送端后接收端没反应?收不到发送端发过来的数据是怎么回事?? 
还有一点就是:当我把发送端的发送的IP地址改为    192.168.1.255   就可以接受到了   这又是为什么啊?  搞不懂    谁能具体说下??? 
- /*UDP传输
 
 - */
 
 - /*发送端
 
 -         步骤:1、建立UDP的socket服务,也就是端点
 
 -                   2、将要提供的数据封装到数据包中
 
 -                   3、通过socket服务的发送功能将数据发出
 
 -                   4、关闭资源
 
 - */
 
 - import java.net.*;
 
 - class  DatagramSocketSend
 
 - {
 
 -         public static void main(String[] args) throws Exception
 
 -         {
 
 -                 //创建UDP的socket服务
 
 -                 DatagramSocket out = new DatagramSocket();
 
 -                 //要发送的数据
 
 -                 byte [] data = "UDP come to Be".getBytes();
 
 -                 //建立数据包,实现无线投递服务
 
 -                 DatagramPacket pack = 
 
 -                         new DatagramPacket(data,data.length,InetAddress.getByName("192.168.1.254"),10010);
 
 -                 //通过socket服务的sent方法将数据发出
 
 -                 out.send(pack);        
 
 -                 //关闭资源
 
 -                 out.close();
 
 -         }
 
 - }
 
 - /*接收端
 
 -         步骤:1、创建UDP接收端服务,并指定端口号
 
 -                   2、定义一个数据包,用来存储接收到的字节数据,
 
 -                         因为数据包对象中有更多功能可以提取字节数据中的不同数据信息
 
 -                   3、通过Socket服务的receive方法将接收到的数据存入已定义好的数据包中
 
 -                   4、使用数据包的特有功能,对这些不同的数据取出,并打印到控制台
 
 -                   5、关闭资源
 
  
- */
 
 - class  DatagramSocketReceive
 
 - {
 
 -         public static void main(String[] args) throws Exception
 
 -         {
 
 -                 //创建socket服务,并指定端口号为10000,方便测试
 
 -                 DatagramSocket ds = new DatagramSocket(10010);
 
 -                 //定义一个数据包,用于存储接收到的数据
 
 -                 byte [] buff = new byte[1024];
 
 -                 DatagramPacket pack = new DatagramPacket(buff,buff.length);
 
 -                 //通过socket服务的receive方法将接收到的数据存入数据包
 
 -                 ds.receive(pack);   //该方法是阻塞状态
 
 -                 //获取信息
 
 -                 //获取发送端IP
 
 -                 System.out.println(pack.getAddress().getHostAddress());
 
 -                 //获取发送端端口号
 
 -                 System.out.println(pack.getPort());
 
 -                 //获取发送端发送的数据的长度
 
 -                 System.out.println(pack.getLength());
 
 -                 //获取发送端发送的数据
 
 -                 System.out.println(new String(pack.getData(),0,pack.getLength()));
 
 -         }
 
 - }
 
  复制代码 
 
 
 
 
 |   
        
 
    
    
    
     
 
 |