JAVA------UDP发送数据和接收数据

UDP接受数据发送数据

UDP发送数据的步骤:

  1. 创建发送端的Socket对象(DatagramSocket)
  2. 创建数据,并将数据打包
  3. 调用DatagramSocket对象的方法发送数据
  4. 关闭发送端

看代码演示:

package UDP;

import java.io.IOException;
import java.net.*;

public class SendDemo {
    
    
	public static void main(String[] args) throws IOException{
    
    
		//创建发送端的Socket对象(DatagramSocket)
		DatagramSocket ds=new DatagramSocket();
		
		//创建数据,并将数据打包
		//DatagramPacket(byte[] buf,int length,InetAddress address,int port)
		//构造一个数据包,发送长度为length的数据包到指定主机上的指定端口号
		byte[] bys="hello,udp".getBytes();
		int len=bys.length;
		InetAddress address=InetAddress.getByName("192.168.223.1");
		int port=10086;//端口号
		DatagramPacket dp=new DatagramPacket(bys,len,address,port);
		 
		
		//调用DatagramSocket对象的方法发送数据
		//void send(DatagramSocket p) 从此套接字发送数据包
		ds.send(dp);
		
		//关闭发送端
		ds.close();
	}
}

UDP接收数据的步骤:

  1. 创建接受端的Socket对象(DatagramSocket)
  2. 创建数据包,用于接受数据
  3. 调用DatagramSocket对象的方法接收数据
  4. 关闭发送端

直接看代码:

package UDP;

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

public class RecriveDemo {
    
    
	public static void main(String[] args) throws IOException{
    
    
		//创建接受端的Socket对象(DatagramSocket)
		//DatagramSocket(int port)构造数据报套接字并将其绑定到本地主机的指定端口
		DatagramSocket ds=new DatagramSocket(10086);
		
		//创建数据包,用于接受数据
		//DatagramPacket(byte[] buf,int length)构造一个DatagramPacket用于接受长度为lenth数据包
		byte[] bys=new byte[1024];
		DatagramPacket dp=new DatagramPacket(bys, bys.length);
		
		//调用DatagramSocket对象的方法接收数据
		ds.receive(dp);
		 
		//解析数据包,并把数据在控制台显示
		//byte[] getData()返回数据缓冲区
		byte datas[]=dp.getData();
		//int getlength()返回要发送的数据的长度或接收到的数据长度
		int len=dp.getLength();
		String dataString=new String(datas,0,len);
		System.out.println("数据是:"+dataString);
		
		//关闭发送端
		ds.close();
	}

}

这里IP地址是我本机IP,也就是发送给自己数据,然后接收端来接受,就可以接收到发送的数据"hello,udp"

猜你喜欢

转载自blog.csdn.net/weixin_45102820/article/details/113781049