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...