成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python之怎么使用socket

本篇內(nèi)容主要講解“python之怎么使用socket”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“python之怎么使用socket”吧!

成都創(chuàng)新互聯(lián)一直通過(guò)網(wǎng)站建設(shè)和網(wǎng)站營(yíng)銷(xiāo)幫助企業(yè)獲得更多客戶(hù)資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、移動(dòng)互聯(lián)產(chǎn)品、全網(wǎng)營(yíng)銷(xiāo)推廣服務(wù)為核心業(yè)務(wù)。十年網(wǎng)站制作的經(jīng)驗(yàn),使用新網(wǎng)站建設(shè)技術(shù),全新開(kāi)發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價(jià)格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡(jiǎn)單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。

01:OSI模型

1)OSI模型包括應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層、物理層這7層。常用的主要是應(yīng)用層和傳輸層,其余就不一一介紹。

2)應(yīng)用層:網(wǎng)絡(luò)服務(wù)和一些終端的應(yīng)用。比如HTTP協(xié)議、FTP協(xié)議

3)傳輸層:定義了一些傳輸數(shù)據(jù)的協(xié)議和端口號(hào)。如UDP協(xié)議、TCP協(xié)議

02:網(wǎng)絡(luò)通信三要素(IP地址、端口號(hào)、傳輸協(xié)議)

1)IP地址:表示網(wǎng)絡(luò)上一臺(tái) 獨(dú)立的主機(jī) ; IP地址=網(wǎng)絡(luò)地址+主機(jī)地址。其中特殊的IP地址:127.0.0.1(本地回環(huán)地址),表示本機(jī)

2)端口號(hào):用于標(biāo)識(shí)進(jìn)程的邏輯地址;不同的進(jìn)程都有不同的端口標(biāo)識(shí)。

3)傳輸協(xié)議:通訊的規(guī)則。

①UDP:用戶(hù)數(shù)據(jù)報(bào)協(xié)議。面向無(wú)連接,傳輸數(shù)據(jù)之前源端和目的端不需要建立連接。如實(shí)時(shí)在線聊天、視頻會(huì)議等

②TCP:傳輸控制協(xié)議。面向連接,傳輸數(shù)據(jù)之前需要建立連接。在連接過(guò)程中進(jìn)行大量數(shù)據(jù)傳輸,通過(guò)“三次握手”的方式完成連接,是安全可靠協(xié)議。傳輸速度慢效率低

03:TCP三次握手

1)TCP建立連接時(shí)要傳輸三個(gè)數(shù)據(jù)包,俗稱(chēng)三次握手(Three-way Handshaking)通俗的理解為:

套接字A:“你好,套接字B,我這里有數(shù)據(jù)要傳送給你,建立連接吧。”套接字B:“好的,我這邊已準(zhǔn)備就緒?!碧捉幼諥:“謝謝你受理我的請(qǐng)求?!?/p>

2)三次握手完成,TCP客戶(hù)端和服務(wù)器端成功地建立連接,可以開(kāi)始傳輸數(shù)據(jù)了。

04:socket通信流程

1)創(chuàng)建服務(wù)端socket對(duì)象。對(duì)象創(chuàng)建時(shí),需要綁定它的IP地址(IPv4或Ipv6)和協(xié)議(TCP或UDP)。 bind()綁定本機(jī)IP地址和端口號(hào),listen()啟動(dòng)監(jiān)聽(tīng)等待客戶(hù)端發(fā)送的請(qǐng)求。至此服務(wù)端建立完成。

2)創(chuàng)建服務(wù)端socket對(duì)象。根據(jù)服務(wù)端IP地址和端口號(hào)試圖連接服務(wù)端socket端。

3)服務(wù)端監(jiān)聽(tīng)接收accept()到客戶(hù)端發(fā)送的請(qǐng)求,建立與客戶(hù)端的連接connect()。

4)連接建立后,客戶(hù)端可以發(fā)送send()數(shù)據(jù)到socket對(duì)象中,服務(wù)端可以接收recv()到客戶(hù)端發(fā)送的數(shù)據(jù)。

5)服務(wù)端處理數(shù)據(jù)后,可以向socket對(duì)象返回一個(gè)send()處理結(jié)果,客戶(hù)端讀取recv()到這個(gè)返回結(jié)

6)客戶(hù)端關(guān)閉close()連接,客戶(hù)端釋放當(dāng)前占用的客戶(hù)端端口號(hào)

7)服務(wù)端收到客戶(hù)端關(guān)閉消息后,關(guān)閉與客戶(hù)端的連接

05:socket常用方法

1)概述:又稱(chēng)"套接字",應(yīng)用程序通常通過(guò)"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求,使主機(jī)間或者一臺(tái)計(jì)算機(jī)上的進(jìn)程間可以通訊。

2)方法分類(lèi):服務(wù)端套接字、客戶(hù)端套接字、公共用途套接字

①服務(wù)端:bind、listen、accept

②客戶(hù)端:connet等

③公共端:recv、send、sendall、close等

3)注意事項(xiàng):socket進(jìn)入阻塞狀態(tài),即 accept()方法一直等到客戶(hù)端返回連接信息后才返回,開(kāi)始接收下一個(gè)客戶(hù)端連接請(qǐng)求

06:服務(wù)端與客戶(hù)端的簡(jiǎn)單通信

發(fā)送數(shù)據(jù):通過(guò)bytes類(lèi)型進(jìn)行傳輸,需要通過(guò)bytes(sendData)轉(zhuǎn)換

接收數(shù)據(jù):通過(guò)str類(lèi)型接收,需要通過(guò)str(client_data)轉(zhuǎn)換

accept():接受并建立與客戶(hù)端的連接,程序在此處開(kāi)始阻塞,只有到客戶(hù)端連接起來(lái)。

#服務(wù)端代碼 
import socket 
sk=socket.socket()#創(chuàng)建服務(wù)端socket對(duì)象 
ip_port=('127.0.0.1',13008)
sk.bind(ip_port)#綁定IP地址和端口號(hào) 
sk.listen(5)#開(kāi)始監(jiān)聽(tīng)是否有請(qǐng)求:同時(shí)最多允許有5個(gè)連接 
print('等待客戶(hù)端的連接')#釋放信號(hào) 
coon,addr=sk.accept()#連接成功后會(huì)返回一個(gè)新的套接字和客戶(hù)端地址 
print('客戶(hù)端新的連接:',addr)
client_data=coon.recv(1024)#接收數(shù)據(jù):一次性接收1024字節(jié) 
print(str(client_data,encoding='utf8'))
sendData=input('請(qǐng)輸入>>>')
coon.sendall(bytes(sendData,encoding='utf8'))#發(fā)送數(shù)據(jù) 
coon.close()#關(guān)閉資源 
sk.close()
#客戶(hù)端代碼 
import socket sk=socket.socket()#創(chuàng)建客戶(hù)端socket對(duì)象 
ip_port=('127.0.0.1',13008)
sk.connect(ip_port)#發(fā)起連接 
sendData=input('請(qǐng)輸入>>>')
sk.sendall(bytes(sendData,encoding='utf8'))#發(fā)送數(shù)據(jù):通過(guò)bytes類(lèi)型進(jìn)行傳輸 
sever_data=sk.recv(1024)#接收數(shù)據(jù):一次性接收1024字節(jié) 
print(str(sever_data,encoding='utf8'))#接收數(shù)據(jù):通過(guò)str類(lèi)型來(lái)接收 
sk.close()

到此,相信大家對(duì)“python之怎么使用socket”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享題目:python之怎么使用socket
當(dāng)前路徑:http://jinyejixie.com/article20/ghddjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站收錄、電子商務(wù)軟件開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
黄平县| 忻城县| 屏东县| 天气| 大悟县| 陇西县| 三河市| 登封市| 沂水县| 长乐市| 长子县| 永吉县| 焉耆| 白水县| 新邵县| 依安县| 阳城县| 遂溪县| 江都市| 桃园市| 贵港市| 保德县| 韶山市| 屏东县| 陈巴尔虎旗| 常州市| 浪卡子县| 郸城县| 清新县| 平罗县| 白山市| 东阿县| 株洲市| 马尔康县| 辽宁省| 金坛市| 龙江县| 昌江| 福海县| 平昌县| 嵩明县|