您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Java套接字編程的相關介紹,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
自尋址套接字(Datagram Sockets)
,因為使用流套接字的每個連接均要花費一定的時間,要減少這種開銷,網絡API提供了第二種套接字:自尋址套接字(datagram socket),自尋址使用UDP發送尋址信息(從客戶程序到服務程序或從服務程序到客戶程序),不同的是可以通過自尋址套接字發送多IP信息包,自尋址信息包含在自尋址包中,此外自尋址包又包含在IP包內,這就將尋址信息長度限制在60000字節內。圖2顯示了位于IP包內的自尋址包的自尋址信息。
與TCP保證信息到達信息目的地的方式不同,UDP提供了另外一種方法,如果自尋址信息包沒有到達目的地,,那么UDP也不會請求發送者重新發送自尋址包,這是因為UDP在每一個自尋址包中包含了錯誤檢測信息,在每個自尋址包到達目的地之后UDP只進行簡單的錯誤檢查,如果檢測失敗,UDP將拋棄這個自尋址包,也不會從發送者那里重新請求替代者,這與通過郵局發送信件相似,發信人在發信之前不需要與收信人建立連接,同樣也不能保證信件能到達收信人那里
自尋址套接字工作包括下面三個類:DatagramPacket, DatagramSocket,和 MulticastSocket。DatagramPacket對象描繪了自尋址包的地址信息,DatagramSocket表示客戶程序和服務程序自尋址套接字,MulticastSocket描繪了能進行多點傳送的自尋址套接字,這三個類均位于java.net包內。
DatagramPacket類
在使用自尋址包之前,你需要首先熟悉DatagramPacket類,地址信息和自尋址包以字節數組的方式同時壓縮入這個類創建的對象中
DatagramPacket有數個構造函數,即使這些構造函數的形式不同,但通常情況下他們都有兩個共同的參數:byte [] buffer 和 int length,buffer參數包含了一個對保存自尋址數據包信息的字節數組的引用,length表示字節數組的長度。
最簡單的構造函數是DatagramPacket(byte [] buffer, int length),這個構造函數確定了自尋址數據包數組和數組的長度,但沒有任何自尋址數據包的地址和端口信息,這些信息可以后面通過調用方法setAddress(InetAddress addr)和setPort(int port)添加上,下面的代碼示范了這些函數和方法。
byte [] buffer = new byte [100];
DatagramPacket dgp = new DatagramPacket (buffer, buffer.length);
InetAddress ia = InetAddress.getByName ("www.disney.com");
dgp.setAddress (ia);
dgp.setPort (6000); // Send datagram packet to port 6000.
看完上述內容,你們對Java套接字編程的相關介紹有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。