Java UDP forma de transmitir programación de red de datos

concepto

UDP y TCP son dos protocolos de transmisión de red comunes. UDP se caracteriza por una alta velocidad, pero poca estabilidad y puede perder datos. Los datos de tcp son muy estables pero relativamente lentos.

Ejemplo de datos de transmisión de protocolo UDP

crear remitente

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();
		}
		
		
		
		
	}

}

crear receptor

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();
		}
		
		
	}

}

Ejecute primero el extremo receptor y luego ejecute el extremo emisor. Como se muestra en la figura, el extremo receptor recibió correctamente los datos.
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/Rockandrollman/article/details/130495069
Recomendado
Clasificación