Java UDP编程发送和接收数据
的有关信息介绍如下:在网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字,通信的两端都有Socket,网络通信其实就是Socket间的通信。数据在两个Socket间通过IO流传输,Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和Port。UDP通信是Socket的一种,我们熟知的聊天工具大多使用的是UDP通信,下面为大家详述UDP通信的开发过程。
首先我们编写数据发送端,需要创建DatagramSocket,可不指定端口号(随机端口号),创建DatagramPacket并指定数据,长度,地址,端口号,使用DatagramSocket发送DatagramPacket,最后关闭DatagramSocket,如下图所示。
数据发送完我们需要再写一个数据接收端,创建DatagramSocket,指定端口号,创建DatagramPacket,指定数据和长度,使用DatagramSocket接收DatagramPacket,关闭DatagramSocket,最后从DatagramPacket中获取数据,如下图所示。
发送端和接收端开发完成后,我们需要启动程序。一般我们先启动接收端再启动发送端,若先启动发送方则接收方来不及接收,可能会导致数据丢失,程序执行的结果如下图所示。
接下来我们来实现UDP代码优化,通过键盘录入实现不同的发送和接收数据,类似于模拟聊天软件聊天。发送方通过while(true)循环不停的从键盘录入数据,直到用户输入quit后停止发送,如下图所示。
接收方同样需要使用while(ture)不停的接收数据,此时socket.close()代码需删除掉。另外,我们可以通过接收的packet获取IP地址和端口号信息,如下图所示。
代码编辑完成后我们来测试一下效果,首先启动接收端再启动发送端。我们在发送端使用键盘录入的方式连续发送两段文字,接收方可立即收到,如下图所示。