Java:网络编程之UDP的使用
生活随笔
收集整理的這篇文章主要介紹了
Java:网络编程之UDP的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java.net? 類 DatagramSocket 此類表示用來發送和接收數據報包的套接字,數據報套接字是包投遞服務的發送或接收點。 java.net? 類 DatagramPacket 此類表示數據報包,數據報包用來實現無連接包投遞服務。 ? ?<1> void send(DatagramPacket p)? ? ? ? ? ? 從此套接字發送數據報包。 ?DatagramPacket(byte[] buf, int length, InetAddress address, int port)? ? ? ? ? ? 構造數據報包,用來將長度為 length 的包發送到指定主機上的指定端口號。 ? ?<2>void receive(DatagramPacket p)? ? ? ? ? ? 從此套接字接收數據報包。 ? ?DatagramPacket(byte[] buf, int length)? ? ? ? ? ? 構造 DatagramPacket,用來接收長度為 length 的數據包。?? ? 需求:通過UDP傳輸方式,將一段文字數據發送出去。 思路:1.建立udpscoket服務 ? ? ? ? ?2.提供數據,并將數據封裝到數據包中 ? ? ? ? ?3.通過scoket服務的功能將數據發出去 ? ? ? ? ?4.關閉資源 //例子如下: import java.net.*;//發送數據
class UdpSend
{public static void main(String[] args)throws Exception{//1,建立udp服務,通過DatagramScoket,建立端點DatagramSocket ds = new DatagramSocket(10000);//可以指定發送端口,例如10000,也可以不用指定,讓系統隨機默認分配//2,確定數據,并封裝成數據包.DatagramPacket(byte[] buf, int length, InetAddress address, int port)byte[] buf = "udp is coming".getBytes();//直接指定信息數據
DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.105"),8888);//3,通過scoket服務的send方法發送數據,
ds.send(dp);//4,關閉資源
ds.close(); }
}
?
需求:定義一個應用程序,用于接收udp協議傳輸的數據并處理 思路:1.定義udpscoket服務,通常會監聽一個端口,其實就是給這個接受網絡應用程序定義一個數字標識。方便于明確哪些數據過來該應用程序可以處理。 ? ? ? ? ?2.定義一個數據包,因為要存儲要接收的數據,因為數據包對象中有更多功能可以提取字節數據中的不同數據信息 ? ? ? ? ?3.通過scoket服務的receive方法將接收到的字節數據存儲到定義好的數據包中 ? ? ? ? ?4.通過數據包對象的特有功能,將不同的數據取出,打印在控制臺上。 ? ? ? ? ?5.關閉資源 //例子如下: //接收數據 class UdpReceive {public static void main(String[] args)throws Exception{//1,建立udp服務,通過DatagramScoket,建立端點DatagramSocket ds = new DatagramSocket(8888);//必須指定接收端應用程序的端口,用來匹配發送端數據包來的端口號while(true){//2,創建一個字節數據包用于存儲接收過來的字節數據byte[] buf = new byte[1024];DatagramPacket dp = new DatagramPacket(buf,buf.length);//3,通過scoket服務的receive方法接收數據,ds.receive(dp);//阻塞式方法//4,將字節數據轉換為字符串并輸出String message = new String(dp.getData(),0,dp.getLength());String IP = dp.getAddress().getHostAddress();int port = dp.getPort();System.out.println("IP:"+IP+"::"+"port:"+port); System.out.println("message:"+message); }//5,關閉資源//ds.close(); } }?
轉載于:https://www.cnblogs.com/XYQ-208910/p/4918884.html
總結
以上是生活随笔為你收集整理的Java:网络编程之UDP的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Winform、WPF、Silverli
- 下一篇: 面向函数范式编程(Functional