JAVA笔记:Java网络编程(四)UDP程序设计

在TCP协议中所有的操作都必须建立可靠的连接,对于系统资源的消耗很大,为了减少这种开销,在网络中又提供了另外一种传输协议:

UDP协议,不可靠的连接,在各个聊天工具中被广泛使用。

在UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket用于完成信息的发送。

UDP中主要是使用数据报协议发送的。

DatagramPacket主要方法:

JAVA笔记:Java网络编程(四)UDP程序设计_第1张图片

包含真实的要发送的信息,称为数据报。

所有的数据报使用DatagramSocket完成数据的发送。

实例:

服务器端:

import java.net.DatagramPacket ;
import java.net.DatagramSocket ;
import java.net.InetAddress ;

public class UDPServer{
	public static void main(String args[]) throws Exception{	// 所有异常抛出
		DatagramSocket ds = null ;		// 定义发送数据报的对象
		DatagramPacket dp = null ;		// 声明DatagramPacket对象
		ds = new DatagramSocket(3000) ;	// 服务端在3000端口上等待服务器发送信息\
		String str = "hello World!!!" ;
		dp = new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),9000) ; // 所有的信息使用buf保存
		System.out.println("发送信息。") ;
		ds.send(dp);	// 发送信息出去
		ds.close() ;
	}
};


客户端:

import java.net.DatagramPacket ;
import java.net.DatagramSocket ;

public class UDPClient{
	public static void main(String args[]) throws Exception{	// 所有异常抛出
		DatagramSocket ds = null ;		// 定义接收数据报的对象
		byte[] buf = new byte[1024] ;	// 开辟空间,以接收数据
		DatagramPacket dp = null ;		// 声明DatagramPacket对象
		ds = new DatagramSocket(9000) ;	// 客户端在9000端口上等待服务器发送信息
		dp = new DatagramPacket(buf,1024) ; // 所有的信息使用buf保存
		ds.receive(dp)  ;	// 接收数据
		String str = new String(dp.getData(),0,dp.getLength()) + "from " + 
			dp.getAddress().getHostAddress() + ":" + dp.getPort() ;
		System.out.println(str) ;	// 输出内容
	}
};



你可能感兴趣的:(JAVA笔记:Java网络编程(四)UDP程序设计)