首頁技術(shù)文章正文

udp和tcp的服務(wù)端和客戶端

更新時間:2018-07-20 來源:黑馬程序員 瀏覽量:

socket簡介

ocket(簡稱 套接字) 是進程間通信的一種方式,它與其他進程間通信的一個主要不同是:

它能實現(xiàn)不同主機間的進程間通信,我們網(wǎng)絡(luò)上各種各樣的服務(wù)大多都是基于 Socket 來完成通信的

例如我們每天瀏覽網(wǎng)頁、QQ 聊天、收發(fā) email 等等

udp網(wǎng)絡(luò)程序-發(fā)送、接收數(shù)據(jù)

1. udp網(wǎng)絡(luò)程序-發(fā)送數(shù)據(jù)

創(chuàng)建一個基于udp的網(wǎng)絡(luò)程序流程很簡單,具體步驟如下:

創(chuàng)建客戶端套接字
發(fā)送/接收數(shù)據(jù)
關(guān)閉套接字
1532076715099_1.jpg
代碼如下:

1532076722428_2.jpg
2. udp網(wǎng)絡(luò)程序-發(fā)送、接收數(shù)據(jù)
1532076735928_3.jpg
tcp客戶端

tcp的客戶端與服務(wù)端

大家都使用過 QQ、微信、支付寶、外賣、銀行等等各種手機 APP, 這些軟件叫做客戶端。
這些客戶端軟件都有一個特點: 如果只有客戶端軟件是無法享受到軟件提供的服務(wù). 客戶端軟件需要與服務(wù)器端軟件相互配合才能完成. 簡言之, 客戶端就是接受服務(wù)的一方, 服務(wù)器端就是提供服務(wù)的一方。

tcp有嚴(yán)格的客戶端和服務(wù)端之分?;?TCP 傳輸方式的通信就必須事先建立連接, 則有一方是主動連接的,而另一方是被連接的; 主動連接的一方一般都是客戶端, 被連接的一方一般都是服務(wù)端。
1532076743115_4.jpg
tcp客戶端構(gòu)建流程

示例代碼:

1532076750319_5.jpg
<1>tcp客戶端
1532076758631_6.jpg
tcp服務(wù)器

生活中的電話機
如果想讓別人能更夠打通咱們的電話獲取相應(yīng)服務(wù)的話,需要做以下幾件事情:

買個手機
插上手機卡
設(shè)計手機為正常接聽狀態(tài)(即能夠響鈴)
靜靜的等著別人撥打

tcp服務(wù)器

如同上面的電話機過程一樣,在程序中,如果想要完成一個tcp服務(wù)器的功能,需要的流程如下:

socket創(chuàng)建一個套接字
bind綁定ip和port
listen使套接字變?yōu)榭梢员粍舆B接,即開啟監(jiān)聽
accept等待客戶端的連接
recv/send接收發(fā)送數(shù)據(jù)

一個很簡單的tcp服務(wù)器如下:
1532076766100_7.jpg
<1>tcp服務(wù)器
1532076773241_8.jpg

1532076781975_9.jpg

作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院

首發(fā):http://python.itheima.com/

   

分享到:
在線咨詢 我要報名
和我們在線交談!