網路程式設計UDP與TCP 基礎知識,日後補充)

2021-08-09 11:30:44 字數 2888 閱讀 9713

udp:使用者資料報協議

特點:面向無連線,資料是不安全,不完整

優點:效率高

tcp:傳輸控制協議

特點:面向有連線,資料是安全,完整性

比如:打**,上網

tcp協議建立連線 有三個步驟 我們稱為"三次握手"

//1.建立datagramsocket物件

datagramsocketds =newdatagramsocket();

//2.建立datagrampacket物件

//儲存 傳送的資料,對方的ip,埠號

bytebs = "我愛你".getbytes();

datagrampacketdp =newdatagrampacket(bs,bs.length,inetaddress.getbyname("127.0.0.1"),12345);

//3.傳送

ds.send(dp);

system.out.println("傳送資料成功!!!");

//4.關閉資源

ds.close();

//1.建立datagramsocket物件,

//強調:接收端必須指定乙個埠號

datagramsocketds =newdatagramsocket(12345);

//2.直接建立乙個datagrampacket物件

bytebs =new byte[1024];

datagrampacketdp =newdatagrampacket(bs, bs.length);

//3.接收

system.out.println("等待傳送端傳送資料....");

ds.receive(dp);//這個方法具有等待功能,等待傳送端傳送過來的資料

system.out.println("接收資料成功!!");

//獲取傳送端的位址

inetaddresssendaddress = dp.getaddress();

system.out.println("傳送端是:"+sendaddress.gethostaddress());

//獲取真正的資料

bytedata = dp.getdata();

//獲取傳送端 發來了多少位元組

intlen = dp.getlength();

//列印資料

stringreceivemsg =newstring(data, 0, len);

system.out.println("傳送端說:"+receivemsg);;

//4.關閉資源

ds.close();

// 1.建立乙個客戶端物件(注意:指定這個socket要連線的伺服器的ip和埠)

* 這個構造方法幹了很多事情:

* a.自動去連線伺服器

* b.自動進行三次握手,建立連線

* c.自動為連線中建立兩個流

socketclient =newsocket("127.0.0.1", 12345);

// 2.從客戶端物件中獲取 輸出流:getoutputstream()

//outputstreamout = client.getoutputstream();

// 3.呼叫輸出流的write方法寫資料到伺服器即可

"howare you".getbytes());

client.getoutputstream().write("howare you".getbytes());

system.out.println("給伺服器傳送資料成功!!");

//  4.關閉資源

client.close();

//1.建立乙個serversocket物件,必須繫結乙個埠,這個埠必須和客戶端連線的埠一致

serversocketserver =newserversocket(12345);

//2.獲取到 哪乙個 客戶端連線的我

system.out.println("等待客戶端連線...");

socketclient = server.accept();//此方法也具有等待功能,等待某乙個客戶端連線

//列印一些和客戶端有關資訊

stringip = client.getinetaddress().gethostaddress();

system.out.println("小樣,抓到你了:"+ip);

//3.獲取輸入流,實際上是客戶端寫資料時的輸出流

inputstreamin = client.getinputstream();

//4.讀取資料

bytebs =new byte[1024];

intlen = in.read(bs);

//列印

system.out.println("客戶端說:"+newstring(bs,0,len));

//5.關閉資源

server.close();

client.close();

in.close();

網路程式設計系列 之TCP和UDP基礎知識

date 2019 3 5 1 參考 下面兩篇文章關於tcp和udp的講解很好,可以參考 tcp udp以及http的簡單講解 tcp和udp的區別和優缺點 2 tcp和udp的區別 一 tcp與udp區別總結 1 tcp面向連線 如打 要先撥號建立連線 udp是無連線的,即傳送資料之前不需要建立連...

網路程式設計 TCP與UDP

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

python網路程式設計 TCP與UDP

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