首頁技術(shù)文章正文

java培訓:DatagramPacket類

更新時間:2022-06-27 來源:黑馬程序員 瀏覽量:

IT培訓班

  DatagramPacket類用于封裝UDP通信中發(fā)送或者接收的數(shù)據(jù)。要想創(chuàng)建一個DatagramPacket對象,首先需要了解它的構(gòu)造方法。在創(chuàng)建發(fā)送端和接收端的DatagramPacket對象時,使用的構(gòu)造方法有所不同。

  接收端的構(gòu)造方法只需要接收一個字節(jié)數(shù)組來存放接收到的數(shù)據(jù), 而發(fā)送端的構(gòu)造方法不但要接收存放了發(fā)送數(shù)據(jù)的字節(jié)數(shù)組,還需要指定發(fā)送端IP地址和端口號。下面根據(jù)APH文檔的內(nèi)容,對DatagramPacket的構(gòu)造方法進行詳細講解。

  (1) DalagramPaeket (byte []buf, int length)

  使用該構(gòu)造方法在創(chuàng)建DagramPacket對象時,指定了封裝數(shù)據(jù)的字節(jié)數(shù)組和數(shù)據(jù)的大小,沒有指定IP地址和端口號。很明顯,這樣的對象只能用于接收端,不能用于發(fā)送端。因為發(fā)送端一定要明確指出數(shù)據(jù)的目的地(IP地址和端口號),而接收端不需要明確知道數(shù)據(jù)的來源,只需要接收到數(shù)據(jù)即可。

  (2) DatagramPacket ( byte[ ]buf, int length, InetAddress addr, int port)

  使用該構(gòu)造方法在創(chuàng)建DatagramPacket對象時,不僅指定了封裝數(shù)據(jù)的字節(jié)數(shù)組和數(shù)據(jù)的大小,而且指定了數(shù)據(jù)包的目標IP地址( addr)和端口號( port)。該對象通常用于發(fā)送端,因為在發(fā)送數(shù)據(jù)時必須指定接收端的IP地址和端口號,就好像發(fā)送貨物的集裝箱上面必須標明接收人的地址一樣。

  (3 ) DatagramPacket ( byte[ ] buf, int offset, int length )

  該構(gòu)造方法與第一個構(gòu)造方法類似,同樣用于接收端,只不過在第一個構(gòu)造方法的基礎(chǔ)上,增加了一offset參數(shù),該參數(shù)用于指定接收到的數(shù)據(jù)在放人buf緩沖數(shù)組時是從offset處開始的。

  (4) DatagramPacket (byte[ ]buf, int offset, int length, InetAddress addr, int port )

  該構(gòu)造方法與第二個構(gòu)造方法類似,同樣用于發(fā)送端,只不過在第二個構(gòu)造方法的基礎(chǔ)上增加了一個offset參數(shù),該參數(shù)用于指定一個數(shù)組中發(fā)送數(shù)據(jù)的偏移量為offset,即從offset位置開始發(fā)送數(shù)據(jù)。

分享到:
在線咨詢 我要報名
和我們在線交談!