99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Java 網(wǎng)絡(luò)UDP套接字

2018-02-28 16:46 更新

Java網(wǎng)絡(luò)教程 - Java網(wǎng)絡(luò)UDP套接字


TCP套接字是面向連接的,基于流?;赨DP的套接字是無(wú)連接的,基于數(shù)據(jù)報(bào)。

使用UDP發(fā)送的數(shù)據(jù)塊稱為數(shù)據(jù)報(bào)或UDP數(shù)據(jù)包。每個(gè)UDP分組具有數(shù)據(jù),目的地IP地址和目的地端口號(hào)。

無(wú)連接套接字在通信之前不建立連接。

UDP是不可靠的協(xié)議,因?yàn)樗槐WC到達(dá)分組的傳遞和順序。

在無(wú)連接協(xié)議UDP中,不會(huì)有服務(wù)器套接字。

在UDP連接中,客戶端和服務(wù)器發(fā)送或接收一組數(shù)據(jù),而無(wú)需事先知道它們之間的通信。

發(fā)送到同一目的地的每個(gè)數(shù)據(jù)塊獨(dú)立于先前發(fā)送的數(shù)據(jù)。

當(dāng)編碼UDP連接時(shí),使用以下兩個(gè)類。

  • DatagramPacket類表示UDP數(shù)據(jù)報(bào)。
  • DatagramSocket類表示用于發(fā)送或接收數(shù)據(jù)報(bào)包的UDP套接字。

以下代碼顯示如何在localhost中創(chuàng)建綁定到端口號(hào)12345的UDP套接字。

DatagramSocket udpSocket = new DatagramSocket(12345, "localhost");

DatagramSocket 類提供了一個(gè)bind()方法,它允許您將套接字綁定到本地IP地址和本地端口號(hào)。


DatagramPacket

DatagramPacket包含三個(gè)東西:

  • 目的IP地址
  • 目的端口號(hào)
  • 數(shù)據(jù)

DatagramPacket類的構(gòu)造函數(shù)創(chuàng)建一個(gè)數(shù)據(jù)包來(lái)接收數(shù)據(jù)如下:

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

DatagramPacket類的構(gòu)造函數(shù)創(chuàng)建一個(gè)數(shù)據(jù)包來(lái)發(fā)送數(shù)據(jù)如下:

DatagramPacket(byte[] buf,  int  length,  InetAddress address, int port)
DatagramPacket(byte[] buf,  int offset, int length,  InetAddress address, int port)
DatagramPacket(byte[] buf,  int length, SocketAddress address)
DatagramPacket(byte[] buf,  int offset, int length, SocketAddress address)

以下代碼演示如何創(chuàng)建數(shù)據(jù)報(bào):

以下代碼創(chuàng)建一個(gè)數(shù)據(jù)包以接收1024字節(jié)的數(shù)據(jù)。

byte[] data = new byte[1024];
DatagramPacket packet  = new DatagramPacket(data, data.length);

以下代碼創(chuàng)建一個(gè)包的緩沖區(qū)大小為1024,并從偏移量8開始接收數(shù)據(jù),它將只接收32字節(jié)的數(shù)據(jù)。

byte[]  data2 = new byte[1024];
DatagramPacket packet2  = new DatagramPacket(data2, 8, 32);

數(shù)據(jù)包中的數(shù)據(jù)總是指定偏移量和長(zhǎng)度。我們需要使用offset和length來(lái)讀取數(shù)據(jù)包中的數(shù)據(jù)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)