這篇文章主要介紹了java如何實現UDP,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
UDP:
需要datagramSocket來進行中間的運輸
無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳輸服務、可能丟失、非常簡單、開銷小
一切以包為中心
數據傳輸不用IO流
接收端
Address already in use: Cannot bind同一個協議下端口不允許沖突
1、使用DatagramSocket指定端口 創建接收端
2、準備容器封裝成DatagramPacket 包裹
3、阻塞式接受包裹receive(DatagramPacket p);
4、分析數據getData()返回類型為字節數組,getLength()返回數據長度,類型為int
5、釋放資源
public class http { public static void main(String[]args) throws Exception { System.out.println("接收方啟動中..."); //1、使用DatagramSocket指定端口 創建接收端 DatagramSocket server=new DatagramSocket(9999);//同一臺電腦上端口不要沖突 //2、準備容器封裝成DatagramPacket 包裹 byte[] container=new byte[1024*60]; DatagramPacket packet=new DatagramPacket(container,0,container.length); //3、阻塞式接受包裹receive(DatagramPacket p); server.receive(packet);//阻塞式,有等待時間 //4、分析數據getData()返回類型為字節數組,getLength()返回數據長度,類型為int byte[] datas=packet.getData(); int len=packet.getLength(); System.out.println(new String(datas,0,datas.length)); //5、釋放資源 server.close(); } }
發送端
1、使用DatagramSocket指定端口 創建發送端
2、準備數據,一定要轉成字節數組
3、準備容器封裝成DatagramPacket 包裹,需要指定目的地(ip地址和端口)
4、發送包裹send(DatagramPacket p);
5、釋放資源
public class client { public static void main(String[]args) throws IOException { System.out.println("發送啟動中..."); //1、使用DatagramSocket指定端口 創建發送端 DatagramSocket client =new DatagramSocket(8888); //2、準備數據,一定要轉成字節數組 String data="我最帥"; byte[] datas=data.getBytes(); //3、準備容器封裝成DatagramPacket 包裹,需要指定目的地(ip地址和端口) DatagramPacket packet=new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",9999)); //4、發送包裹send(DatagramPacket p); client.send(packet); //5、釋放資源 client.close(); } }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java如何實現UDP”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。