Java UDP 通信客户端与服务器端实例分析 Java UDP 通信客户端与服务器端实例分析是介绍 Java 语言基于 UDP 协议的客户端与服务器端的实现技巧和相关操作注意事项。UDP 协议是一种无连接的网络协议,它不像 TCP 协议那样需要三次握手机制, UDP 协议的优点是传输速度快、延迟小,但它也存在一些缺点,如容易丢包、不 guarantee 顺序等。 在 Java 中,使用 UDP 协议需要使用 DatagramSocket 类来创建 socket,DatagramPacket 类来创建数据包。服务器端使用 DatagramSocket 监听指定的端口,客户端使用 DatagramSocket 将数据发送到服务器端。下面是服务器端和客户端的实例代码: 服务器端: ```java import java.net.*; public class TestUdpServer { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); DatagramSocket ds = new DatagramSocket(2345); while(true) { ds.receive(dp); System.out.println(new String(buf,0,dp.getLength())); } } } ``` 客户端: ```java import java.net.*; public class TestUdpClient { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; buf = (new String("hello")).getBytes(); DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",2345)); DatagramSocket ds = new DatagramSocket(5679); ds.send(dp); ds.close(); } } ``` 在上面的代码中,服务器端使用 DatagramSocket 监听 2345 端口,客户端使用 DatagramSocket 将字符串 "hello" 发送到服务器端。服务器端接收到数据后,打印出接收到的数据。 在 UDP 协议中,数据是以字节为单位进行传输的,因此需要使用字节数组来存储数据。在 Java 中,可以使用 ByteArrayInputStream 和 DataInputStream 来读取字节数组中的数据。 例如,下面是传输 Long 类型数据的实例: 服务器端: ```java import java.io.*; import java.net.*; public class UdpServer { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); DatagramSocket ds = new DatagramSocket(2345); while(true) { ByteArrayInputStream is = new ByteArrayInputStream(buf); DataInputStream dis = new DataInputStream(is); ds.receive(dp); System.out.println(dis.readLong()); } } } ``` 客户端: ```java import java.io.*; import java.net.*; public class UdpClient { public static void main(String[] args) throws Exception { Long n = 10000L; ByteArrayOutputStream os = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(os); dos.writeLong(n); byte[] buf = os.toByteArray(); DatagramPacket dp = new DatagramPacket(buf,buf.length,new InetSocketAddress("127.0.0.1",2345)); DatagramSocket ds = new DatagramSocket(5679); ds.send(dp); ds.close(); } } ``` 在上面的代码中,服务器端使用 ByteArrayInputStream 和 DataInputStream 读取字节数组中的 Long 类型数据,客户端使用 ByteArrayOutputStream 和 DataOutputStream 将 Long 类型数据写入字节数组中,然后将字节数组发送到服务器端。 Java UDP 通信客户端与服务器端实例分析介绍了 Java 语言基于 UDP 协议的客户端与服务器端的实现技巧和相关操作注意事项,包括数据传输的基本原理和实例代码的实现。
- 粉丝: 4
- 资源: 910
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助