UDP 编程:

特点:udp协议是无连接,无状态,无序的、不可靠的。

优点:速度快。

原理:将需要发送的信息封装在数据报(Datagram),在数据报里指明Socket主机和端口号。然后发送出去。

扩展:TCP、UDP协议详解

使用的操作类:

DatagramPacket 表示数据报包

文档解释:

此类表示数据报包。

数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。

DataSocket 用来发送和接收数据报包的套接字

文档解释:

此类表示用来发送和接收数据报包的套接字。

----数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。

----在 DatagramSocket 上总是启用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收。

示例:DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888));这等价于:DatagramSocket s = new DatagramSocket(8888); 两个例子都能创建能够在 UDP 8888 端口上接收广播的 DatagramSocket。

服务器端实现步骤:

1、创建DatagramSocket,指定端口号

2、创建DatagramPacket

3、接收客户端发送的数据信息

4、读取数据

服务端具体代码:

客户端:

1、定义发送信息

2、创建DatagramPacket:包含将要发送信息

3、创建DatagramSocket

4、发送数据

客户端具体代码:

输出结果: