UDP编程
来源:互联网 发布:全天重庆时时计划数据 编辑:程序博客网 时间:2024/06/05 04:55
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是一种数据传输协议。UDP协议是一种无连接协议,因此UDP传输数据的时候可能会导致数据的丢失。例如,服务器没有打开的情况下,数据会丢失。UDP协议使用的范围十分的广泛,例如短信发送。
使用方式如下:
1、创建一个UDP服务器
public class UdpServer { public static void main(String[] args) { // 创建一个服务器 DatagramSocket server = null; try { try { // 实例化服务器,初始化端口 server = new DatagramSocket(8888,InetAddress.getByName("127.0.0.1")); } catch (UnknownHostException e1) { e1.printStackTrace(); } //根据接收到的报文,定义接收的字节数组 byte[] recv = new byte[server.getReceiveBufferSize()]; //将接收到的数据进行打包 DatagramPacket packet = new DatagramPacket(recv, recv.length); try { //接收数据 server.receive(packet); //转字符串 String recvString = new String(recv, 0, packet.getLength()); //打印 System.out.println(recvString); //将接收到的报文发送回去,如果需要添加新的东西,则需要重新定义数据包DatagramPacket server.send(packet); } catch (IOException e) { e.printStackTrace(); } } catch (SocketException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (server != null && !server.isClosed()) { server.close(); } } }}
2、创建一个UDP客户端
public class UdpClient { public static void main(String[] args) { // 创建一个UDP客户端 DatagramSocket client = null; try { // 对客户端进行实例化 client = new DatagramSocket(); // 需要发送的内容 String msg = "Hello World!"; // 将需要发送的内容转成字节数组 byte[] sendData = msg.getBytes(); try { // 发送的地址 InetAddress address = InetAddress.getByName("127.0.0.1"); // 发送的端口 int port = 8888; // 将需要发送的内容进行打包 DatagramPacket packet = new DatagramPacket(sendData, sendData.length, address, port); try { // 客户端发送数据包 client.send(packet); //接收服务器发送回来的数据包 client.receive(packet); System.out.println(new String(sendData)); } catch (IOException e) { e.printStackTrace(); } } catch (UnknownHostException e) { e.printStackTrace(); } } catch (SocketException e) { e.printStackTrace(); } finally { if (client != null && !client.isClosed()) { client.close(); } } }}
在进行测试的时候,需要先打开UdpServer,然后再打开UdpClient,否则会造成数据的丢失。
阅读全文
0 0
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- Udp编程
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- UDP 编程
- udp编程
- Udp编程
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- UDP编程
- udp编程
- 吃一堑,长一智~~跳槽一个月暨年中总结
- Git常用操作整理
- 通讯录.动态
- spring面试
- mint-ui —— checklist的使用
- UDP编程
- ASP.NET一系列问题与解决办法
- C++详解Leetcode:101. Symmetric Tree
- LeetCode 506 Relative Ranks
- caffe当中对于cifar10进行训练
- Scrapy核心架构
- 欢迎使用CSDN-markdown编辑器
- 217. Contains Duplicate
- border:none,border:0