Advertisement

Java网络编程UDP协议发送和接收数据

阅读量:

在工作中有涉及用Java实现UDP协议传输和接收数据,因为之前学习网络编程的时候这块没怎么认真关注,这里补充记录下。

UDP协议发送数据

复制代码
    public class UdpSendDemo {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
        DatagramSocket ds=null;
        try {
    			ds=new DatagramSocket();
    			InetAddress address=InetAddress.getByName("192.168.1.106");
    			byte[] bys="hello!".getBytes();//数据传输以byte形式
    			DatagramPacket dp=new DatagramPacket(bys,bys.length,address,10086);
    			ds.send(dp);
    		} catch (SocketException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (UnknownHostException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally {
    			if(ds!=null) ds.close();
    		}
        
    	}
    
    }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

UDP协议接收数据

复制代码
    public class UdpReceiveDemo {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
        DatagramSocket ds=null;
        try {
    			ds=new DatagramSocket(10086);
    			byte[] bys=new byte[1024];
    			int len=bys.length;
    			DatagramPacket dp=new DatagramPacket(bys,len);
    			ds.receive(dp);//接收的数据存入DatagramPacket作为容器
    			byte[] bys2=dp.getData();
    			System.out.println(new String(bys2,0,dp.getLength()));
    		} catch (SocketException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally {
    			ds.close();//注意释放资源
    		}
    	}
    
    }
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

运行时先运行接收端代码,再运行发送端代码。

全部评论 (0)

还没有任何评论哟~