導航:首頁 > 編程語言 > javasocket編程udp

javasocket編程udp

發布時間:2023-08-16 08:52:45

⑴ 在javasocket網路編程中,開發基於udp協議的程序使用的套接字有哪些

一、 填空題

___ IP地址____用來標志網路中的一個通信實體的地址。通信實體可以是計算機,路由器等。
統一資源定位符URL是指向互聯網「資源」的指針,由4部分組成:協議、存放資源的主機域名、__埠___和資源路徑和文件名。
URL 是統一資源定位器的簡稱,它表示Internet上某一資源的地址。
在Socket編程中,IP地址用來標志一台計算機,但是一台計算機上可能提供多種應用程序,使用 埠 來區分這些應用程序。
在Java Socket網路編程中,開發基於TCP協議的伺服器端程序使用的套接字是 ServerSocket 。
在Java Socket網路編程中,開發基於UDP協議的程序使用的套接字是 DatagramSocket 。
二、 選擇題

1.以下協議都屬於TCP/IP協議棧,其中位於傳輸層的協議是(AD)。(選擇二項)
A TCP
B.HTTP
C.SMTP
D.UDP
2.以下協議中屬於TCP/IP協議棧中應用層協議的是(A)。(選擇一項)
A HTTP
B.TCP
C.UDP
D.IP
3.以下說法中關於UDP協議的說法正確的是(AD)。(選擇二項)
A.發送不管對方是否准備好,接收方收到也不確認
B.面向連接
C.佔用系統資源多、效率低
D.非常簡單的協議,可以廣播發送
4.在基於TCP網路通信模式中,客戶與伺服器程序的主要任務是(BC)。(選擇二項)
A 客戶程序在網路上找到一條到達伺服器的路由
B.客戶程序發送請求,並接收伺服器的響應
C.伺服器程序接收並處理客戶請求,然後向客戶發送響應結果
D.如果客戶程序和伺服器都會保證發送的數據不會在傳輸途中丟失
5.在Java網路編程中,使用客戶端套接字Socket創建對象時,需要指定(A)。慧宏(選擇一項)
A 伺服器主機名稱和埠
B.伺服器埠和文件
C.伺服器名稱和文件
D.伺服器地址和文件
6.ServerSocket的監聽滑碧尺方法accept( )方法的返回值類型是(A )。(選擇一項)
A.Socket
B.Void
C.Object
D.DatagramSocket
7.Java UDP Socket編程主要用到的兩個類是(BD)。(選擇二項信高)
A UDPSocket
B.DatagramSocket
C.UDPPacket
D.DatagramPacket
8.在使用UDP套接字通信時,常用(D)類把要發送的信息打包。(選擇一項)
A String
B.DatagramSocket
C.MulticastSocket
D.DatagramPacket

三、 判斷題

1. Socket是傳輸層供給應用層的編程介面,是應用層與傳輸層之間的橋梁 。( T )
2. TCP/IP傳輸控制協議是Internet的主要協議,定義了計算機和外設進行通信的規則。TCP/IP網路參考模型包括七個層次:應用層、會話層、表示層、傳輸層、網路層、鏈路層和物理層。( F )
3. TCP協議一種面向連接的、可靠的、基於位元組流的通信協議 。HTTP、FTP、TELNET、SMTP 都是基於TCP協議的應用層協議。( T )
4. UDP協議是一種面向無連接的、可靠的、基於位元組流的傳輸層通信協議,該協議佔用系統資源多、效率較低。( F )

四、 簡答題

1.TCP/IP協議棧中,TCP協議和UDP協議的聯系和區別?

2.簡述基於TCP的Socket編程的主要步驟。提示:分別說明伺服器端和客戶端的編程步驟。

3.簡述基於UDP的Socket編程的主要步驟。提示:分別說明伺服器端和客戶端的編程步驟。

五、 編碼題

1.使用基於TCP的Java Socket編程,完成如下功能:

1) 要求從客戶端錄入幾個字元,發送到伺服器端。

2) 由伺服器端將接收到的字元進行輸出。

3) 伺服器端向客戶端發出「您的信息已收到」作為響應。

4) 客戶端接收伺服器端的響應信息。

提示:

伺服器端:PrintWriter out =new PrintWriter(socket.getOutputStream(),true);

客戶端:BufferedReader line=new BufferedReader(new InputStreamReader(System.in));

⑵ 瘋狂Java講義:使用DatagramSocket發送、接收數據[2]

程序客戶端代碼也與此類似 客戶端採用循環不斷地讀取用戶鍵盤輸入 每當讀到用戶輸入內容後就將該內容封裝成DatagramPacket數據報 再將該數據報發送出去 接著把DatagramSocket中的數據讀入接收用的DatagramPacket中(實際上是讀入該DatagramPacket所封裝的位元組數組中) 客旁和戶端代碼如下

程序清單 codes/ / /UdpClient java

public class UdpClient

{

//定義發送數據報的目的地

public static final int DEST_PORT = ;

public static final String DEST_IP = ;

//定義每個數據報的最大大小為 K

private static final int DATA_LEN = ;

//定義該客戶端使用的DatagramSocket

private DatagramSocket socket = null;

//定義接收網路數據的位元組數組

byte[] inBuff = new byte[DATA_LEN];

//以指定位元組數組創建准攔兄備接受數據的DatagramPacket對象

private DatagramPacket inPacket =

new DatagramPacket(inBuff inBuff length)

//定義一個用於發送的DatagramPacket對象

private DatagramPacket outPacket = null;

public void init()throws IOException

{

try

{

//創建一個客戶端DatagramSocket 使用隨機埠

socket = new DatagramSocket()

//初始化發送用的DatagramSocket 它包含一個長度為 的位元組數組

簡啟襲outPacket = new DatagramPacket(new byte[ ]

InetAddress getByName(DEST_IP) DEST_PORT)

//創建鍵盤輸入流

Scanner scan = new Scanner(System in)

//不斷讀取鍵盤輸入

while(scan hasNextLine())

{

//將鍵盤輸入的一行字元串轉換位元組數組

byte[] buff = scan nextLine() getBytes()

//設置發送用的DatagramPacket里的位元組數據

outPacket setData(buff)

//發送數據報

socket send(outPacket)

//讀取Socket中的數據 讀到的數據放在inPacket所封裝的位元組數組里

socket receive(inPacket)

System out println(new String(inBuff

inPacket getLength()))

}

}

//使用finally塊保證關閉資源

finally

{

if (socket != null)

{

socket close()

}

}

}

public static void main(String[] args)

throws IOException

{

new UdpClient() init()

}

}

上面程序的粗體字代碼同樣也是通過DatagramSocket發送 接收DatagramPacket的關鍵代碼 這些代碼與伺服器的代碼基本相似 而客戶端與伺服器端的唯一區別在於 伺服器所在IP地址 埠是固定的 所以客戶端可以直接將該數據報發送給伺服器 而伺服器則需要根據接收到的數據報來決定將 反饋 數據報的目的地

讀者可能會發現 使用DatagramSocket進行網路通信時 伺服器端無須 也無法保存每個客戶端的狀態 客戶端把數據報發送到伺服器後 完全有可能立即退出 但不管客戶端是否退出 伺服器無法知道客戶端的狀態

當使用UDP協議時 如果想讓一個客戶端發送的聊天信息可被轉發到其他所有客戶端則比較困難 可以考慮在伺服器使用Set來保存所有客戶端信息 每當接收到一個客戶端的數據報之後 程序檢查該數據報的源SocketAddress是否在Set集合中 如果不在就將該SocketAddress添加到該Set集合中 但這樣一來又涉及一個問題 可能有些客戶端發送一個數據報之後永久性地退出了程序 但伺服器端還將該客戶端的SocketAddress保存在Set集合中……總之 這種方式需要處理的問題比較多 編程比較煩瑣 幸好Java為UDP協議提供了MulticastSocket類 通過該類可以輕松實現多點廣播

返回目錄 瘋狂Java講義

編輯推薦

Java程序性能優化 讓你的Java程序更快 更穩定

新手學Java 編程

Java程序設計培訓視頻教程

lishixin/Article/program/Java/hx/201311/27260

⑶ java socket實現兩個客戶段或多個客戶端之間通信,該怎麼解決

javasocket有兩種方式。一種是UDP這個可以直連,不需要伺服器。一種是TCP這個是肯定要能過伺服器來通信的。所以你說的。鏈接建立完畢後不再通過伺服器!這個可以實現,但會麻煩一些。1.先說一下簡單的點的吧。用TCP的方式。你所有的消息都是發給伺服器。包含你的IP及通信埠,及對方的IP及通信埠信息。當然這些是隱藏在數據報中的。這樣由伺服器來進行分發。2.你說的那種方式有點類似TCP與UDP混合。首先啟動一個SERVER然後每一個客戶端,先要登陸SERVER,並在server上記錄下你的IP及通信埠信息,如果你要連接某一個客戶端。先要向伺服器發出一個申請,獲得到方的IP及埠信息,然後進行UDP連接。連接上以後,就是直接發送息,不需要伺服器了。javasocket的東西,以前做過一些,所以有思路,但沒有現成的代碼。有問題再聯系。

⑷ 我要一份用java網路編程寫的點對點的兩人聊天程序(TCP和UDP)

Server端:
import java.io.*;
import java.net.*;
import java.applet.Applet;
public class TalkServer{
public static void main(String args[]) {
try{
ServerSocket server=null;
try{
server=new ServerSocket(4700);
}catch(Exception e) {
System.out.println("can not listen to:"+e);
}
Socket socket=null;
try{
socket=server.accept();
}catch(Exception e) {
System.out.println("Error."+e);
}
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Client:"+is.readLine());
line=sin.readLine();
while(!line.equals("bye")){
os.println(line);
os.flush();
System.out.println("Server:"+line);
System.out.println("Client:"+is.readLine());
line=sin.readLine();
}
os.close();
is.close();
socket.close();
server.close();
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}

Client端:
import java.io.*;
import java.net.*;
public class TalkClient {
public static void main(String args[]) {
try{
Socket socket=new Socket("127.0.0.1",4700);
BufferedReader sin=new BufferedReader(new InputStreamReader(System.in));
PrintWriter os=new PrintWriter(socket.getOutputStream());
BufferedReader is=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String readline;
readline=sin.readLine(); //從系統標准輸入讀入一字元串
while(!readline.equals("bye")){
os.println(readline);
os.flush();
System.out.println("Client:"+readline);
System.out.println("Server:"+is.readLine());
readline=sin.readLine(); //從系統標准輸入讀入一字元串
}
os.close(); //關閉Socket輸出流
is.close(); //關閉Socket輸入流
socket.close(); //關閉Socket
}catch(Exception e) {
System.out.println("Error"+e); //出錯,則列印出錯信息
}
}
}

⑸ 在javasocket網路編程中,開發基於udp協議的程序使用的套接字有哪些

Socket套接字,是由系統提供用於網路通信的技術(操作系統給應用程序提供的一組API叫做Socket API),是基於TCP/IP協議的網路通信的基本操作單元。基於Socket套接字的網路程序開發就是網路編程。

socket可以視為是應用層和傳輸層之間的通信橋梁;
傳輸層的核心協議有兩種:TCP,UDP;socket API也有對應的兩組,由於TCP和UDP協議差別很大,因此,這兩組API差別也挺大。

分類:
Socket套接字主要針對傳輸層協議劃分為如下三類:

流套接字:使用傳輸層TCP協議
TCP,即Transmission Control Protocol(傳輸控制協議),傳輸層協議;
TCP的特點:

有連接:像打電話,得先接通,才能交互數據;
可靠傳輸:傳輸過程中,發送方知道接收方有沒有收到數據.(打電話就是可靠傳輸);
面向位元組流:以位元組為單位進行傳輸.(非常類似於文件操作中的位元組流);
全雙工:一條鏈路,雙向通信;
有接收緩沖區,也有發送緩沖區。
大小不限
對於位元組流來說,可以簡單的理解為,傳輸數據是基於IO流,流式數據的特徵就是在IO流沒有關閉的情況下,是無邊界的數據,可以多次發送,也可以分開多次接收。

數據報套接字:使用傳輸層UDP協議
UDP,即User Datagram Protocol(用戶數據報協議),傳輸層協議。
UDP的特點:

無連接:像發微信,不需要接通,直接就能發數據;
不可靠傳輸:傳輸過程中,發送方不知道接收方有沒有收到數據.(發微信就是不可靠傳輸);
面向數據報:以數據報為單位進行傳輸(一個數據報都會明確大小)一次發送/接收必須是一個完整的數據報,不能是半個,也不能是一個半;
全雙工:一條鏈路,雙向通信;
有接收緩沖區,無發送緩沖區;
大小受限:一次最多傳輸64k;
對於數據報來說,可以簡單的理解為,傳輸數據是一塊一塊的,發送一塊數據假如100個位元組,必須一次發送,接收也必須一次接收100個位元組,而不能分100次,每次接收1個位元組。

原始套接字
原始套接字用於自定義傳輸層協議,用於讀寫內核沒有處理的IP協議數據。

二、UDP數據報套接字編程
UDPSocket中,主要涉及到兩類:DatagramSocket、DatagramPacket;

DatagramSocket API
DatagramSocket 創建了一個UDP版本的Socket對象,用於發送和接收UDP數據報,代表著操作系統中的一個socket文件,(操作系統實現的功能–>)代表著網卡硬體設備的抽象體現。

DatagramSocket 構造方法:

方法簽名 方法說明
DatagramSocket() 創建一個UDP數據報套接字的Socket,綁定到本機任意一個隨機埠(一般用於客戶端)
DatagramSocket(int port) 創建一個UDP數據報套接字的Socket,綁定到本機指定的埠(一般用於服務端)
DatagramSocket 方法:

方法簽名 方法說明
void receive(DatagramPacket p) 從此套接字接收數據報(如果沒有接收到數據報,該方法會阻塞等待)
void send(DatagramPacket p) 從此套接字發送數據報包(不會阻塞等待,直接發送)
void close() 關閉此數據報套接字
DatagramPacket API
代表了一個UDP數據報,是UDP Socket發送和接收的數據報,每次發送/接收數據報,都是在傳輸一個DatagramPacket對象。

DatagramPacket 構造方法:

方法簽名 方法說明
DatagramPacket(byte[] buf, int length) 構造一個DatagramPacket以用來接收數據報,接收的數據保存在位元組數組(第一個參數buf)中,接收指定長度(第二個參數length)
DatagramPacket(byte[] buf, int offset, int length,SocketAddress address) 構造一個DatagramPacket以用來發送數據報,發送的數據為位元組數組(第一個參數buf)中,從0到指定長度(第二個參數length)。address指定目的主機的IP和埠號
DatagramPacket 方法:

方法簽名 方法說明
InetAddress getAddress() 從接收的數據報中,獲取發送端主機IP地址;或從發送的數據報中,獲取接收端主機IP地址
int getPort() 從接收的數據報中,獲取發送端主機的埠號;或從發送的數據報中,獲取接收端主機埠號
byte[] getData() 獲取數據報中的數據
構造UDP發送的數據報時,需要傳入 SocketAddress ,該對象可以使用 InetSocketAddress 來創建。

InetSocketAddress API
InetSocketAddress ( SocketAddress 的子類 )構造方法:

方法簽名 方法說明
InetSocketAddress(InetAddress addr, int port) 創建一個Socket地址,包含IP地址和埠號
示例1:寫一個簡單的客戶端服務程序,回顯服務(EchoSever)
在這里插入圖片描述
構建Socket對象有很多失敗的可能:

埠號已經被佔用,同一個主機的兩個程序不能有相同的埠號(這就好比兩個人不能擁有相同的電話號碼);
此處,多個進程不能綁定同一個埠號,但是一個進程可以綁定多個埠,(這就好比一個人可以擁有多個手機號),一個進程可以創建多個Socket對象,每個Socket都綁定自己的埠。
每個進程能夠打開的文件個數是有上限的,如果進程之間已經打開了很多文件,就可能導致此時的Socket文件不能順利打開;
在這里插入圖片描述
這個長度不一定是1024,假設這里的UDP數據最長是1024,實際的數據可能不夠1024.

在這里插入圖片描述
這里的參數不再是一個空的位元組數組了,response是剛才根據請求計算的得到的響應,是非空的,DatagramPacket 裡面的數據就是String response的數據。

response.getBytes().length:這里拿到的是位元組數組的長度(位元組的個數),而response.length得到的是字元的長度。

五元組
一次通信是由5個核心信息描述的:源IP、 源埠、 目的IP、 目的埠、 協議類型。

站在客戶端角度:

源IP:本機IP;
源埠:系統分配的埠;
目的IP:伺服器的IP;
目的埠:伺服器的埠;
協議類型:TCP;
站在伺服器的角度:

源IP:伺服器程序本機的IP;
源埠:伺服器綁定的埠(此處手動指定了9090);
目的IP:包含在收到的數據報中(客戶端的IP);
目的埠:包含在收到的數據報中(客戶端的埠);
協議類型:UDP;

⑹ Socket 通信之 UDP 通信

前段時間,我們在 這篇文章 中談到了多進程和進程之間的通信方式,主要談到了本地進程之間使用隊列(Queue)進程通信,如果我們要通信的進程不在同一台主機上,我們就無法使用隊列進行通信了,這時就需要使用 Socket(套接字)。
Socket 是應用層和傳輸層之間的一層抽象協議,可以用來進行進程間通信,一般有 UDP 和 TCP 兩種通信方式,前者速度稍快,穩定性不好,無法丟包重傳。後者速度稍慢一點,但穩定性很好,可以丟包重傳。
本文首先介紹使用 Socket 進行 UDP 通信。

使用 Socket 進行 UDP 通信的流程如下:

下面依次進行講解。

要進行 Socket 通信,我們需要使用 socket 模塊,首先需要創建一個 Socket 對象。下面是兩種創建方式:

如果我們需要向別的主機發送數據,我們需要改主機的 IP 地址和相應的埠號。在使用 Socket 進行通信時,需要將兩個信息寫在一元組中,元組的第一項為目標主機 IP 地址,第二項為接受數據的埠號:

其中,IP 地址使用字元串類型,埠號使用數字類型。

如果不綁定埠,每次使用 Socket 時都會由操作系統動態分配一個埠,我們也可以綁定為某個固定的埠。這樣做的好處是:如果我們想要接受其他主機的信息,其他主機可以直接向這個埠發送數據,如果使用動態埠的話,發送方並不知道目標埠是什麼,因此無法向接收方發送數據。
綁定埠需要使用 Socket 對象的 bind 方法:

bind 方法接受一個元組作為參數,元組的第一項為綁定的 IP 地址,第二項為綁定的埠號。我們可以把第一項指定為本機上的任意一個 IP 地址,也可以設置為一個空字元串 "" ,表示本機上任意合法的 IP 地址。

使用 UDP 套接字協議時,發送數據使用 Socket 對象的 sendto 方法,接受數據使用 Socket 對象的 recvfrom 方法。這兩個方法的使用方式如下:

sendto 方法接受兩個參數:發送的數據和目標主機的 IP 和埠元組,在 Python3 中,發送的數據應該轉為 byte 類型發送,Python2 中可以直接發送字元串。
recvfrom 接受一個參數:本次接受的最大數據尺寸。該方法是阻塞的,只有在接收到數據後才能進行後續的操作。

就像使用文件那樣,在使用完套接字後,需要關閉它,調用 close 方法即可。

上面我們介紹了 Socket 的使用方式,下面我們來做一個單工通信的例子(一方負責發送信息,一方負責接收信息)。
我們這里來創建兩個文件:用以發送信息的 send.py 和用以接收信息的 recv.py。該實例在虛擬機中模擬(注意將虛擬機設置為橋接模式)。
創建 send.py:

創建 recv.py:

運行結果如下:

上面實現了一個單工通信的例子:一方負責發,一方負責接收。下面我們繼續實現一個雙工通信的例子,使雙方都能夠收發消息。
由於接收和發送消息時是使用 while 循環不斷輪詢的,因此要實現同時發送和接受,我們需要進行多任務處理。
新建一個 msg.py:

這里我們使用 3000 埠發送數據,3001 埠接收數據,運行程序時只需填寫目標主機的 IP 地址,就可以進行通信。
運行效果:

我們還可以進行區域網內的廣播,只需對 Socket 加上一條設置:

同時,發送廣播需要一個廣播地址,以及目標主機接受廣播的埠:

上面的設置只能給 0 網段的主機發送廣播,要想給區域網中所有的主機發送廣播,可以這樣設置:

下面我們新建一個 send.py 用來發送廣播:

新建一個 recv.py 用來接收廣播:

運行效果如圖:

完。

⑺ 請教大神,怎麼使用java實現UDP埠掃描

給你個UDP服務端與客戶端的示例:

服務端代碼:


importjava.net.DatagramPacket;
importjava.net.InetAddress;
importjava.net.MulticastSocket;

publicclassUDPMulticastServer{
finalstaticintRECEIVE_LENGTH=1024;

staticStringmulticastHost="224.0.0.1";

staticintlocalPort=9998;

publicstaticvoidmain(String[]args)throwsException{

InetAddressreceiveAddress=InetAddress.getByName(multicastHost);

if(!receiveAddress.isMulticastAddress()){//測試是否為多播地址

thrownewException("請使用多播地址");

}

intport=localPort;

=newMulticastSocket(port);

receiveMulticast.joinGroup(receiveAddress);


booleanisStop=false;
while(!isStop){
DatagramPacketdp=newDatagramPacket(newbyte[RECEIVE_LENGTH],RECEIVE_LENGTH);
receiveMulticast.receive(dp);
Stringdata=newString(dp.getData()).trim();
System.out.println(data);
if("exit".equals(data)){
System.out.println("程序退出");
isStop=true;
}
}

receiveMulticast.close();
}
}

客戶端代碼:


importjava.net.DatagramPacket;
importjava.net.InetAddress;
importjava.net.MulticastSocket;

publicclassUDPMulticastClient{
staticStringdestAddressStr="224.0.0.1";

staticintdestPortInt=9998;

staticintTTLTime=4;

publicstaticvoidmain(String[]args)throwsException{ InetAddressdestAddress=InetAddress.getByName(destAddressStr);

if(!destAddress.isMulticastAddress()){//檢測該地址是否是多播地址

thrownewException("地址不是多播地址");

}

intdestPort=destPortInt;


MulticastSocketmultiSocket=newMulticastSocket();

// intTTL=TTLTime;
// multiSocket.setTimeToLive(TTL);

byte[]sendMSG="exit".getBytes();

DatagramPacketdp=newDatagramPacket(sendMSG,sendMSG.length,destAddress,destPort);

multiSocket.send(dp);

multiSocket.close();

}

}

⑻ java 中怎麼使用UDP

發送步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務。

將數據打包到DatagramPacket中去

通過socket服務發送 (send()方法)

關閉資源

importjava.io.IOException;
importjava.net.*;

publicclassSend{

publicstaticvoidmain(String[]args){

DatagramSocketds=null;//建立套間字udpsocket服務

try{
ds=newDatagramSocket(8999);//實例化套間字,指定自己的port
}catch(SocketExceptione){
System.out.println("Cannotopenport!");
System.exit(1);
}

byte[]buf="Hello,Iamsender!".getBytes();//數據
InetAddressdestination=null;
try{
destination=InetAddress.getByName("192.168.1.5");//需要發送的地址
}catch(UnknownHostExceptione){
System.out.println("Cannotopenfindhost!");
System.exit(1);
}
DatagramPacketdp=
newDatagramPacket(buf,buf.length,destination,10000);
//打包到DatagramPacket類型中(DatagramSocket的send()方法接受此類,注意10000是接受地址的埠,不同於自己的埠!)

try{
ds.send(dp);//發送數據
}catch(IOExceptione){
}
ds.close();
}
}

接收步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務。(我們注意到此服務即可以接收,又可以發送),port指定監視接受埠。

定義一個數據包(DatagramPacket),儲存接收到的數據,使用其中的方法提取傳送的內容

通過DatagramSocket 的receive方法將接受到的數據存入上面定義的包中

使用DatagramPacket的方法,提取數據。

關閉資源。

importjava.net.*;

publicclassRec{

publicstaticvoidmain(String[]args)throwsException{

DatagramSocketds=newDatagramSocket(10000);//定義服務,監視埠上面的發送埠,注意不是send本身埠

byte[]buf=newbyte[1024];//接受內容的大小,注意不要溢出

DatagramPacketdp=newDatagramPacket(buf,0,buf.length);//定義一個接收的包

ds.receive(dp);//將接受內容封裝到包中

Stringdata=newString(dp.getData(),0,dp.getLength());//利用getData()方法取出內容

System.out.println(data);//列印內容

ds.close();//關閉資源
}
}
閱讀全文

與javasocket編程udp相關的資料

熱點內容
大腳重置命令 瀏覽:128
app怎麼引導頁面 瀏覽:944
pdf轉換成w0rd 瀏覽:569
壓縮空氣屬於什麼能量類型 瀏覽:879
上海交警app怎麼付費 瀏覽:599
暗黑2怎麼切換伺服器 瀏覽:18
安卓如何玩港服游戲 瀏覽:348
程序員如何換個城市生活 瀏覽:145
JS開發PDF 瀏覽:285
app格式不對怎麼辦 瀏覽:96
32位定時器單片機 瀏覽:332
安卓編譯不能進行下一步簽名 瀏覽:607
男生做保潔解壓視頻 瀏覽:750
qd88yg壓縮機參數 瀏覽:385
pubg國際服伺服器有什麼區別 瀏覽:506
怎麼打開文件夾自動刪除 瀏覽:685
php中英文切換 瀏覽:445
php168數據 瀏覽:79
水壓縮後有彈性 瀏覽:47
蘇州阿里雲伺服器數據備份 瀏覽:524