欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  介绍:
 
  UDP为用户数据报协议,在java中操纵UDP使用JDK中java.net包下的DatagramSocket和DatagramPacket类,可以方便的控制用户数据报文。
 
  DatagramPacket类将数据字节填充到UDP包中,这称为数据报。
 
  DatagramSocket用来发送这个包。如果接受数据,可以从DatagramSocket中接受一个DatagramPack对象,然后从该包中读取数据的内容。
 
  UDP是面向无连接的单工通信,它速度快。
 
  在线视频教程推荐:java在线视频
 
  1、DatagramSocket类
 
  构造函数:
 
  DatagramSocket()
 
  创建实例,通常用于客户端编程,他并没有特定的监听端口,仅仅使用一个临时的。
 
  DatagramSocket(intport)
 
  创建实例,并固定监听Port端口的报文。
 
  DatagramSocket(intport,InetAddressladdr)
 
  这是个非常有用的构建器,当一台机器拥有多于一个IP地址的时候,由它创建的实例仅仅接收来自LocalAddr的报文。
 
  DatagramSocket(SocketAddressbindaddr)
 
  bindaddr对象中指定了端口和地址。
 
  常用函数:
 
  receive(DatagramPacketp)
 
  接收数据报文到p中。receive方法是阻塞的,如果没有接收到数据报包的话就会阻塞在哪里。
 
  send(DatagramPacketp)
 
  发送报文p到目的地。
 
  setSoTimeout(inttimeout)
 
  设置超时时间,单位为毫秒。
 
  close()
 
  关闭DatagramSocket。在应用程序退出的时候,通常会主动的释放资源,关闭Socket,但是由于异常的退出可能造成资源无法回收。所以应该在程序完成的时候,主动使用此方法关闭Socket,或在捕获到异常后关闭Socket。
 
  2、DatagramPacket类
 
  DatagramPacket类用于处理报文,将字节数组、目标地址、目标端口等数据包装成报文或者将报文拆卸成字节数组。
 
  构造函数:
 
  DatagramPacket(byte[]buf,intlength,InetAddressaddr,intport)
 
  从buf字节数组中取出offset开始的、length长的数据创建数据对象,目标地址是addr,目标端口是port。
 
  DatagramPacket(bytebuf[],intoffset,intlength,SocketAddressaddress)
 
  从buf字节数组中取出offset开始的、length长的数据创建数据对象,目标地址是address
 
  常用函数:
 
  getData()byte[]
 
  从实例中取得报文中的字节数组编码。
 
  setData(byte[]buf,intoffset,intlength)
 
  设置数据报包中的数据内容
 
  3、UDP通信的通信流程
 
  UDP发送端:
 
  1、建立updsocket服务。
 
  2、提供数据,并将数据封装到数据包中。
 
  3、通过socket服务的发送功能,将数据包发出去。
 
  4、关闭资源。
 
  UDP接收端:
 
  1、定义udpsocket服务,通常会监听一个端口。
 
  2、定义一个数据包,存储接收到的字节数据。
 
  3、通过socket服务的receive方法将收到的数据存入已定义好的数据包中。
 
  4、通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上。
 
  5、关闭资源。
 
  更多相关问题请访问java文章教程:java入门







本文转载自人民网

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/css3-style/c54333.shtml