java udp way to transmit data network programming

concept

UDP and TCP are two common network transmission protocols. UDP is characterized by fast speed, but poor stability and may lose data. The tcp data is highly stable but relatively slow.

Example of udp protocol transmission data

create sender

package com.test.udpTest;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UdpSend {
    
    

	/**
	 * @param args
	 */
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub

		//发送端
		try {
    
    
			
			
			//1.创建一个socket(码头)
			DatagramSocket datagramSocket=new DatagramSocket();
			
			//2.创建packet (集装箱)
			byte[] data="你好,通信技术".getBytes();
			int length=data.length;
			InetAddress ip=InetAddress.getByName("192.168.8.4");
			int port=8888; // 0-1023端口号一般是常用的知名的程序的端口号    65535以内
			
			//DatagramPacket(byte[] buf, int length, InetAddress address, int port) 
			
			DatagramPacket datagramPacket=new DatagramPacket(data, length, ip, port);
			
			//3.发送
			datagramSocket.send(datagramPacket);
			
			//4.关闭码头
			datagramSocket.close();
			
			
			
			
			
		} 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();
		}
		
		
		
		
	}

}

create receiver

package com.test.udpTest;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UdpReceive {
    
    

	/**
	 * @param args
	 */
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub

		//1.创建码头 接收端的码头需要添加端口号,发送端端口号要跟接收端的端口号一致
		try {
    
    
			DatagramSocket datagramSocket=new DatagramSocket(8888);
			
			//2.创建packet 用来接收传递过来的数据
			byte[] data=new byte[1024];
			int length=data.length;
			DatagramPacket datagramPacket=new DatagramPacket(data, length);
			
			//3.接收数据
			datagramSocket.receive(datagramPacket);
			
		    String ip=datagramPacket.getAddress().getHostAddress();
		    
		    String msg=new String(data);
		    
		    System.out.println("接收到来自"+ip+"的信息:"+msg);
		    
		    //4.关闭码头
		    datagramSocket.close();
			
		} catch (SocketException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

}

Run the receiving end first, and then run the sending end. As shown in the figure, the receiving end successfully received the data.
insert image description here

Guess you like

Origin blog.csdn.net/Rockandrollman/article/details/130495069