Java中UDP协议的基本原理和简单用法
生活随笔
收集整理的這篇文章主要介紹了
Java中UDP协议的基本原理和简单用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?? UDP協議是非面向連接的,相對于TCP協議效率較高,但是不安全。UDP協議類似發信息的過程,不管接收方是在線還是關機狀態,都會把信息發送出去。但是如果接收方不處于接收信息的狀態,發送出去的數據包就會丟失。
convert()方法是用來轉換字節數組和基本類型。
?
?
?
?
/*** 創建基于udp協議的服務接受端* @author wxisme**/public class MyServer {public static void main(String[] args) throws IOException {//創建服務端端口DatagramSocket server = new DatagramSocket(9898);//準備接受數據的容器byte[] container = new byte[1024];//把數據封裝成包DatagramPacket packet = new DatagramPacket(container, container.length);//接收數據server.receive(packet);//分析數據//byte[] data = packet.getData();double data = convert(packet.getData());int len = packet.getLength();//System.out.println(new String(data, 0, len));System.out.println(data);//釋放資源server.close();}/*** 轉換為基本類型* @param data* @return* @throws IOException */public static double convert(byte[] data) throws IOException {DataInputStream dis = new DataInputStream(new ByteArrayInputStream(data));double num = dis.readDouble();return num;}}?
?
/*** 創建基于udp協議的客戶發送數據端* @author wxisme*/public class MyClient {public static void main(String[] args) throws IOException {//創建服務端端口DatagramSocket client = new DatagramSocket(6868);//準備數據//String str = "UDP Protocol";double num = 216.35;//byte[] data = str.getBytes();byte[] data = convert(num);//數據打包DatagramPacket packet = new DatagramPacket(data, data.length, new InetSocketAddress("localhost", 9898));//發送數據client.send(packet);//關閉資源client.close();System.exit(0);}/*** 將基本類型轉換成字節數組* @param num* @return* @throws IOException */public static byte[] convert(double num) throws IOException {byte[] data = null;ByteArrayOutputStream bos = new ByteArrayOutputStream();DataOutputStream dos = new DataOutputStream(bos);dos.writeDouble(num);dos.flush();data = bos.toByteArray();dos.close();return data;}}?
總結
以上是生活随笔為你收集整理的Java中UDP协议的基本原理和简单用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动开发环境搭建
- 下一篇: 一款net平台软件之汉化