UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地 ,也不能保证数据包到达的顺序。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
在Java中UDP的实现:
* UDP:
* 客户端:
* 1.创建用于UDP通信的socket对象---DatagramSocket(用于UDP数据的发送和接收)---数据报套接字
* 2.准备数据,封装包----DatagramPacket(数据包)
* 3.发送数据,通过send方法
* 4.关闭套接字对象--socket对象
* 服务器端: 接收数据
* 1.创建socket套接字对象,并绑定端口号
* 2.创建包对象,创建空数组,准备接收数据
* 3.接收数据
* 4.关闭资源
* UDP广播方式:
* 同一网段所有主机都能接收,前提是端口要监听
* 客户端发送广播,开启端口监听的服务端接收并打印消息
* 广播的实现 :由客户端发出广播,服务器端接收
* String host = "255.255.255.255";//广播地址--代表所有主机
* 10.0.122.255----代表前三个网段是 10.0.122的所有主机
代码实现:
客户端(发送端):
import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class UDP_client { public static void main(String[] args) throws IOException { //1.创建对象 //构造数据报套接字并将其绑定到本地主机上任何可用的端口。 DatagramSocket socket = new DatagramSocket(); //2.打包 byte[] arr = "客户端:哈哈。。。。".getBytes(); //四个参数: 包的数据 包的长度 主机对象 端口号 DatagramPacket packet = new DatagramPacket (arr, arr.length,InetAddress.getByName("10.0.122.255") , 4000); //3.发送 socket.send(packet); //4.关闭资源 socket.close(); } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756