标签:
在TCP协议中所有的操作都必须建立可靠的连接,对于系统资源的消耗很大,为了减少这种开销,在网络中又提供了另外一种传输协议:
UDP协议,不可靠的连接,在各个聊天工具中被广泛使用。
在UDP开发中使用DatagramPacket包装一条要发送的信息,之后使用DatagramSocket用于完成信息的发送。
UDP中主要是使用数据报协议发送的。
DatagramPacket主要方法:
包含真实的要发送的信息,称为数据报。
所有的数据报使用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) ; // 输出内容 } };
标签:
原文地址:http://blog.csdn.net/tryitboy/article/details/43647767