0
点赞
收藏
分享

微信扫一扫

Java中udp/tcp的发送和接收


一、UDP协议发送数据

发送处理过程:

  1. 创建发送端Socket对象——DatagramSocket
  2. 创建数据并将数据打包到DatagramPacket对象
  3. 通过Socket发送
  4. 释放相关资源

发送处理代码:

public   class  TestUDPSend { 
      public   static   void  main( String [] args) { 
          String  data= "hello UDP" ; 
         DatagramSocket datagramSocket=null; 
          try  { 
              //实例化套接字,并指定发送端口 
             datagramSocket= new  DatagramSocket( 8080 ); 
              //指定数据目的地的地址,以及目标端口 
             InetAddress destination=InetAddress.getByName( "localhost" );  
             DatagramPacket datagramPacket= 
                      new  DatagramPacket(data.getBytes(), data.getBytes().length,destination, 8081 ); 
              //发送数据 
             datagramSocket.send(datagramPacket); 
         }  catch  (SocketException e) { 
             e.printStackTrace(); 
         }  catch  (IOException e) { 
             e.printStackTrace(); 
         }  finally { 
             datagramSocket.close(); 
         } 
     } 
 }

 

 

 

 

二、UDP协议接收数据

接受处理过程:

  1. 创建接受端Socket对象——DatagramSocket
  2. 创建包DatagramPacket对象(数据接收容器)
  3. 调用接受方法接受数据
  4. 解析数据包对象,取出接受到的信息
  5. 释放资源

接受处理代码:

public   class  TestUDPReceive { 
     public   static   void  main( String [] args) { 
        DatagramSocket datagramSocket=null; 
         try  { 
             //监视8081端口的内容 
            datagramSocket= new  DatagramSocket( 8081 ); 
             byte [] buf= new   byte [ 1024 ]; 
             
             //定义接收数据的数据包 
            DatagramPacket datagramPacket= new  DatagramPacket(buf,  0 , buf.length); 
            datagramSocket.receive(datagramPacket); 
             
             //从接收数据包取出数据 
             String  data= new   String (datagramPacket.getData() ,  0  ,datagramPacket.getLength()); 
            System.out.println(data); 
        }  catch  (SocketException e) { 
            e.printStackTrace(); 
        }  catch  (IOException e) { 
            e.printStackTrace(); 
        }  finally  { 
            datagramSocket.close(); 
        }       
    } 
 }

运行:

先运行接收端,让程序监听8081端口,然后运行发送端发送数据到本机(localhost)的8081端口。

之后会发现在接收端的控制台打印出 ‘hello UDP ’的内容。

举报

相关推荐

0 条评论