UDP协议与编程

UDP协议的通信特点:
1.UDP是一个简单的面向数据报的无连接协议,依然需要端口号区分应用程序。
2.不提供对IP协议的可靠机制、流控制和错误恢复等功能,头部包含了很少的字节,比TCP负载消耗少,速度也相对快些。
3.不需要维护连接状态,字节开销很小。
4.服务于很多领域,如DNS域名系统、简单文件传输系统TFTP、动态主机配置协议DHCP等。


UDP编程模型(点到点传输模式):
发送端:
1.创建数据socket,指定一个端口号。
DatagramSocket ds=new DatagramSocket(9999);
2.用byte数组创建数据包对象,同时提供接收端的IP地址和端口。
DatagramPacket dp=new DatagramPacket(str.getBytes(),0,str.length(),InetAddress.getByName("localhost"),9998);
3.调用DatagramSocket的send()方法发送数据。
ds.send(dp);
4.释放资源,关闭DatagramSocket对象。
ds.close();

接收端(只有收到了消息后才知道发送者是谁):
1.创建数据socket,指定一个端口号。
DatagramSocket ds=new DatagramSocket(9998);
2.用byte数组进行数据存储
byte b[]=new byte[1024];
3.用byte数组创建数据包对象
DatagramPacket dp=new DatagramPacket(b,1024);
4.调用DatagramSocket的receive()方法接收数据。
ds.receive(dp);
5.调用DatagramPacket的getData()方法得到byte数组的数据。
String str=new String(dp.getData(),0,dp.getLength());
6.释放资源,关闭DatagramSocket对象。
ds.close();

posted @ 2013-07-01 11:45  一种微笑  Views(208)  Comments(0)    收藏  举报