網路程式設計 UDP丶TCP

2021-08-22 09:49:59 字數 2377 閱讀 8867

2.接收方

3.傳送方

二.tcp

2.伺服器端

3.客戶端

udp:面向無連線通訊(傳送端不需接收端確認是否能接收),資料不安全,效率高

1.常用方法

inetaddress

datagrampacket

datagramsocket

2.接收方

/* 測試時應先啟動接收方,再啟動傳送方 */

//用於接收資料的緩衝區

byte data=new

byte[1024];

//建立資料報物件

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

//建立套接字物件,設定接收方埠為3000

datagramsocket ds=new datagramsocket(3000);

//接收資料報

ds.receive(dp);

//獲取傳送者的ip位址

string senderip=dp.getaddress().gethostaddress();

//獲取傳送者的埠號

int senderport=dp.getport();

//獲取資料報的大小

int length=dp.getlength();

system.out.println(senderip+":"+senderport+"..."+new string(data,0,length));

//關閉資源

ds.close();

3.傳送方
string msg="你好";

byte data=msg.getbytes();

//接收者ip位址

inetaddress receiverip=inetaddress.getbyname("127.0.0.1");

//接收者埠號

int receiverport=3000;

//建立資料報

datagrampacket dp=new datagrampacket(data, data.length,receiverip,receiverport);

//建立套接字物件

datagramsocket ds=new datagramsocket();

//傳送資料報

ds.send(dp);

//關閉資源

ds.close();

tcp:面向有連線通訊,三次握手,資料安全,效率較低,區分客戶端與伺服器端

1.常用方法

socket

serversocket

2.伺服器端

//建立伺服器端的套接字物件,並繫結埠號

serversocket server=new serversocket(4000);

//監聽並接受客戶端的套接字

socket socket= server.accept();

//獲取客戶端傳送資料的輸入流

inputstream in=socket.getinputstream();

byte data=new

byte[1024];

//讀取客戶端傳送的資料

int len=in.read(data);

string msg=new string(data,0,len);

system.out.println(msg);

if(msg.equals("我要登入"))

//關閉資源

socket.close();

server.close();

3.客戶端
//建立客戶端的套接字物件,並設定需要訪問的伺服器的ip和埠

socket socket=new socket("127.0.0.1", 4000);

//獲取傳送資料到伺服器端的輸出流

outputstream out= socket.getoutputstream();

//傳送資料到伺服器端

out.write("我要登入".getbytes());

//獲取伺服器端響應返回資料的輸入流

inputstream in=socket.getinputstream();

byte data=new

byte[1024];

//讀取伺服器端返回的資料

int len=in.read(data);

system.out.println(new string(data,0,len));

//關閉資源

socket.close();

網路程式設計 TCP與UDP

tcp transmission control protocol 傳輸控制協議 是一種面向連線的 可靠的 基於位元組流的傳輸層通訊協議,由ietf的rfc 793定義。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立乙個tcp連線,之後才能傳輸資料。tcp提供超時重發,丟棄重複資料,檢驗資料,流...

網路程式設計 TCP和UDP

在網路通訊協議下不同計算機上執行的程式,可以進行資料傳輸 ip位址 ip位址可以唯一標識網路中的裝置 埠埠號可以標識裝置中的應用程式 協議常見udp tcp 方法名說明 datagramsocket 建立資料報套接字並將其繫結到本機位址上的任何可用埠 datagrampacket byte buf,...

python網路程式設計 TCP與UDP

tcp與udp的區別 tcp速度慢,穩定。udp速度快,不穩定,易丟資料。udp 客戶端 import socket clientsocket socket.socket socket.af inet,socket.sock dgram 建立套接字 sendtoaddr 192.168.1.111 ...