java网络编程UDP

UDP是基于广播数据报的传输协议,是一种无连接,不可靠的协议。

UDP编程中主要用到两个类:
java.net.DatagramSocket :客户端 客户端用来发送或接收报文
java.net.DatagramKet:数据报

UDP编程代码示例如下:

发送端代码


package send;

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

public class DataSender {
	public static void main(String[] args) throws IOException {
		
		//声明用于发送广播的客户端ds
		DatagramSocket ds=new DatagramSocket();
		
		//发送的内容
		String str="Hello World";
		 byte[] bs=str.getBytes();
		 
		 //目标计算机
		 InetSocketAddress target=new InetSocketAddress("192.168.0.105",5555);
		//声明数据报
		DatagramPacket dp=new DatagramPacket(bs,0,bs.length,target); 
		//发送广播
		ds.send(dp);
	}
}

接收端代码

package Receive;

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

public class DataReceiver {

	public static void main(String[] args) throws IOException {
		
		//在本机5467建立监听
		DatagramSocket socket =new DatagramSocket(5555);
		
		//构建空的数据报,用于存放接收到的内容
		byte[] buffer =new byte[128];
		DatagramPacket p=new DatagramPacket(buffer,buffer.length);
		
		//等待接收,放入数据报中
		socket.receive(p);
	    //输出接到的数据报内容
		String s=new String(buffer,0,p.getLength());
		System.out.println("接收到的内容:"+s);
	}
}

先运行接收端,再运行发送端!不然,接收端会接收不到数据,receive()会一直等待!
接收端运行结果:

接收到的内容:Hello World

发送端运行结果:

已发送!

你可能感兴趣的:(java,网络)