91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python之怎么使用socket

發布時間:2021-11-02 15:46:36 來源:億速云 閱讀:430 作者:iii 欄目:編程語言

本篇內容主要講解“python之怎么使用socket”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python之怎么使用socket”吧!

01:OSI模型

1)OSI模型包括應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層這7層。常用的主要是應用層和傳輸層,其余就不一一介紹。

2)應用層:網絡服務和一些終端的應用。比如HTTP協議、FTP協議

3)傳輸層:定義了一些傳輸數據的協議和端口號。如UDP協議、TCP協議

02:網絡通信三要素(IP地址、端口號、傳輸協議)

1)IP地址:表示網絡上一臺 獨立的主機 ; IP地址=網絡地址+主機地址。其中特殊的IP地址:127.0.0.1(本地回環地址),表示本機

2)端口號:用于標識進程的邏輯地址;不同的進程都有不同的端口標識。

3)傳輸協議:通訊的規則。

①UDP:用戶數據報協議。面向無連接,傳輸數據之前源端和目的端不需要建立連接。如實時在線聊天、視頻會議等

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

03:TCP三次握手

1)TCP建立連接時要傳輸三個數據包,俗稱三次握手(Three-way Handshaking)通俗的理解為:

套接字A:“你好,套接字B,我這里有數據要傳送給你,建立連接吧。”套接字B:“好的,我這邊已準備就緒。”套接字A:“謝謝你受理我的請求。”

2)三次握手完成,TCP客戶端和服務器端成功地建立連接,可以開始傳輸數據了。

04:socket通信流程

1)創建服務端socket對象。對象創建時,需要綁定它的IP地址(IPv4或Ipv6)和協議(TCP或UDP)。 bind()綁定本機IP地址和端口號,listen()啟動監聽等待客戶端發送的請求。至此服務端建立完成。

2)創建服務端socket對象。根據服務端IP地址和端口號試圖連接服務端socket端。

3)服務端監聽接收accept()到客戶端發送的請求,建立與客戶端的連接connect()。

4)連接建立后,客戶端可以發送send()數據到socket對象中,服務端可以接收recv()到客戶端發送的數據。

5)服務端處理數據后,可以向socket對象返回一個send()處理結果,客戶端讀取recv()到這個返回結

6)客戶端關閉close()連接,客戶端釋放當前占用的客戶端端口號

7)服務端收到客戶端關閉消息后,關閉與客戶端的連接

05:socket常用方法

1)概述:又稱"套接字",應用程序通常通過"套接字"向網絡發出請求或者應答網絡請求,使主機間或者一臺計算機上的進程間可以通訊。

2)方法分類:服務端套接字、客戶端套接字、公共用途套接字

①服務端:bind、listen、accept

②客戶端:connet等

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

3)注意事項:socket進入阻塞狀態,即 accept()方法一直等到客戶端返回連接信息后才返回,開始接收下一個客戶端連接請求

06:服務端與客戶端的簡單通信

發送數據:通過bytes類型進行傳輸,需要通過bytes(sendData)轉換

接收數據:通過str類型接收,需要通過str(client_data)轉換

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

#服務端代碼 
import socket 
sk=socket.socket()#創建服務端socket對象 
ip_port=('127.0.0.1',13008)
sk.bind(ip_port)#綁定IP地址和端口號 
sk.listen(5)#開始監聽是否有請求:同時最多允許有5個連接 
print('等待客戶端的連接')#釋放信號 
coon,addr=sk.accept()#連接成功后會返回一個新的套接字和客戶端地址 
print('客戶端新的連接:',addr)
client_data=coon.recv(1024)#接收數據:一次性接收1024字節 
print(str(client_data,encoding='utf8'))
sendData=input('請輸入>>>')
coon.sendall(bytes(sendData,encoding='utf8'))#發送數據 
coon.close()#關閉資源 
sk.close()
#客戶端代碼 
import socket sk=socket.socket()#創建客戶端socket對象 
ip_port=('127.0.0.1',13008)
sk.connect(ip_port)#發起連接 
sendData=input('請輸入>>>')
sk.sendall(bytes(sendData,encoding='utf8'))#發送數據:通過bytes類型進行傳輸 
sever_data=sk.recv(1024)#接收數據:一次性接收1024字節 
print(str(sever_data,encoding='utf8'))#接收數據:通過str類型來接收 
sk.close()

到此,相信大家對“python之怎么使用socket”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆云县| 建始县| 合肥市| 金阳县| 枣庄市| 小金县| 腾冲县| 七台河市| 苍梧县| 汉川市| 池州市| 伊川县| 南涧| 宜章县| 醴陵市| 靖宇县| 大兴区| 信阳市| 泾源县| 绥中县| 泰州市| 申扎县| 房产| 贵州省| 武邑县| 宜兰市| 东乌珠穆沁旗| 昆明市| 加查县| 长顺县| 巴南区| 万盛区| 莱西市| 三江| 镇平县| 海林市| 盘山县| 永靖县| 桂林市| 平乡县| 社旗县|