33 Java入門 網路程式設計之UDP程式設計

2021-07-24 07:13:26 字數 3270 閱讀 1970

udp程式設計

1、udp協議(使用者資料報協議)是無連線、不可靠、無序的。

2、udp協議以資料報作為資料傳輸的載體。

3、使用udp進行資料傳輸時,首先需要將要傳輸的資料定義成資料報(datagram),在資料報中指明所要達到的socket(主機位址和埠號),然後在將資料報發生出去。

datagramsocket:進行端到端通訊的類

datagrampacket類構造方法:

1、datagrampacket(byte buf,int length)//接受長度為length的資料報

2、datagrampacket(byte buf,int length,inetaddress address,int port)//將指定長度的位元組發生到指定主機的指定埠

datagramsocket類

1、構造方法:datagramsocket();

datagramsocket(int port,inetaddress laddr);

2、close();//關閉datagramsocket

3、getinetaddress();//獲取位址

4、getport();//獲取埠號

5、send(datagrampacket p);//從此套接字傳送資料報

recrive(datagrampacket p);//從此套接字接收資料報

伺服器端實現步驟:

1、建立datagramsocket,指定埠號

2、建立datagrampacket

3、接收客戶端傳送的資料資訊

4、讀取資料

服務端具體**:

1、建立伺服器端datagramsocket

datagramsocket socket=datagramsocket(8800);

2、建立資料報,使用者接收客戶端傳送的資料

byte data=new byte[1024];

datagrampacket packet=new datagrampacket(data,data.length);

3、接收客戶端傳送的資料

socket.receive(packet);//會處於阻塞,直到接收到資料報

4、讀取資料

string info=new string(data,0,packet.getlength());

system.out.println("客戶端說"+info);

客戶端實現步驟:

1、定義傳送資訊

2、建立datagrampacket:包含將要傳送資訊

3、建立datagramsocket

4、傳送資料

伺服器端,實現基於udp的使用者登陸:

/** 接收客戶端傳送的資料

*///1.建立伺服器端datagramsocket,指定埠

datagramsocket socket=new datagramsocket(8800);

//2.建立資料報,用於接收客戶端傳送的資料

byte data =new byte[1024];//建立位元組陣列,指定接收的資料報的大小

datagrampacket packet=new datagrampacket(data, data.length);

//3.接收客戶端傳送的資料

system.out.println("****伺服器端已經啟動,等待客戶端傳送資料");

socket.receive(packet);//此方法在接收到資料報之前會一直阻塞

//4.讀取資料

string info=new string(data, 0, packet.getlength());

system.out.println("我是伺服器,客戶端說:"+info);

/** 向客戶端響應資料

*///1.定義客戶端的位址、埠號、資料

inetaddress address=packet.getaddress();

int port=packet.getport();

byte data2="歡迎您!".getbytes();

//2.建立資料報,包含響應的資料資訊

datagrampacket packet2=new datagrampacket(data2, data2.length, address, port);

//3.響應客戶端

socket.send(packet2);

//4.關閉資源

socket.close();

客戶端/** 向伺服器端傳送資料

*///1.定義伺服器的位址、埠號、資料

inetaddress address=inetaddress.getbyname("localhost");

int port=8800;

byte data="使用者名稱:admin;密碼:123".getbytes();

//2.建立資料報,包含傳送的資料資訊

datagrampacket packet=new datagrampacket(data, data.length, address, port);

//3.建立datagramsocket物件

datagramsocket socket=new datagramsocket();

//4.向伺服器端傳送資料報

socket.send(packet);

/** 接收伺服器端響應的資料

*///1.建立資料報,用於接收伺服器端響應的資料

byte data2=new byte[1024];

datagrampacket packet2=new datagrampacket(data2, data2.length);

//2.接收伺服器響應的資料

socket.receive(packet2);

//3.讀取資料

string reply=new string(data2, 0, packet2.getlength());

system.out.println("我是客戶端,伺服器說:"+reply);

//4.關閉資源

socket.close();

基於udp的多執行緒實現多客戶端通訊

伺服器端:

datagramsocket socket=new datagramsocket(8818);

byte data=new byte[1024];

system.out.println("****伺服器啟動,等待客戶端連線****");

int count=1;

while(true)

public void run()

}

java網路程式設計之SOCKET

建立物件的時候就會建立連線 try socket socket new socket time.nist.gov 13 catch ioeception ex 可選的 socket.setsotimeout 150000 從socket中讀取資料 inputstream in socket.geti...

Java網路程式設計之Socket

網路模型 tcp協議與udp協議區別 網路程式設計的本質是兩個裝置之間的資料交換,當然,在計算機網路中,裝置主要指計算機。資料傳遞本身沒有多大的難度,不就是把乙個裝置中的資料傳送給兩外乙個裝置,然後接受另外乙個裝置反饋的資料。現在的網路程式設計基本上都是基於請求 響應方式的,也就是乙個裝置傳送請求資...

java網路程式設計之TFTP(一)

tftp使用了udp套接字,效率比較高,但是也要求tftp為資料傳輸的不可靠負責。tftp伺服器在69埠上監聽到來的資料報,客戶端使用乙個隨機的埠號 tftp作用 許多無盤工作站使用tftp來載入它們需要的來自伺服器的檔案。每個資料報有乙個操作碼opcode 16 bits 表示包的型別,有五種 1...