更新時(shí)間:2018-07-20 來(lái)源:黑馬程序員 瀏覽量:
socket簡(jiǎn)介
ocket(簡(jiǎn)稱 套接字) 是進(jìn)程間通信的一種方式,它與其他進(jìn)程間通信的一個(gè)主要不同是:
它能實(shí)現(xiàn)不同主機(jī)間的進(jìn)程間通信,我們網(wǎng)絡(luò)上各種各樣的服務(wù)大多都是基于 Socket 來(lái)完成通信的
例如我們每天瀏覽網(wǎng)頁(yè)、QQ 聊天、收發(fā) email 等等
udp網(wǎng)絡(luò)程序-發(fā)送、接收數(shù)據(jù)
1. udp網(wǎng)絡(luò)程序-發(fā)送數(shù)據(jù)
創(chuàng)建一個(gè)基于udp的網(wǎng)絡(luò)程序流程很簡(jiǎn)單,具體步驟如下:
創(chuàng)建客戶端套接字
發(fā)送/接收數(shù)據(jù)
關(guān)閉套接字
代碼如下:
2. udp網(wǎng)絡(luò)程序-發(fā)送、接收數(shù)據(jù)
tcp客戶端
tcp的客戶端與服務(wù)端
大家都使用過(guò) QQ、微信、支付寶、外賣、銀行等等各種手機(jī) APP, 這些軟件叫做客戶端。
這些客戶端軟件都有一個(gè)特點(diǎn): 如果只有客戶端軟件是無(wú)法享受到軟件提供的服務(wù). 客戶端軟件需要與服務(wù)器端軟件相互配合才能完成. 簡(jiǎn)言之, 客戶端就是接受服務(wù)的一方, 服務(wù)器端就是提供服務(wù)的一方。
tcp有嚴(yán)格的客戶端和服務(wù)端之分?;?TCP 傳輸方式的通信就必須事先建立連接, 則有一方是主動(dòng)連接的,而另一方是被連接的; 主動(dòng)連接的一方一般都是客戶端, 被連接的一方一般都是服務(wù)端。
tcp客戶端構(gòu)建流程
示例代碼:
<1>tcp客戶端
tcp服務(wù)器
生活中的電話機(jī)
如果想讓別人能更夠打通咱們的電話獲取相應(yīng)服務(wù)的話,需要做以下幾件事情:
買個(gè)手機(jī)
插上手機(jī)卡
設(shè)計(jì)手機(jī)為正常接聽(tīng)狀態(tài)(即能夠響鈴)
靜靜的等著別人撥打
tcp服務(wù)器
如同上面的電話機(jī)過(guò)程一樣,在程序中,如果想要完成一個(gè)tcp服務(wù)器的功能,需要的流程如下:
socket創(chuàng)建一個(gè)套接字
bind綁定ip和port
listen使套接字變?yōu)榭梢员粍?dòng)連接,即開啟監(jiān)聽(tīng)
accept等待客戶端的連接
recv/send接收發(fā)送數(shù)據(jù)
一個(gè)很簡(jiǎn)單的tcp服務(wù)器如下:
<1>tcp服務(wù)器
作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院
首發(fā):http://python.itheima.com/