python中的TCP(傳輸控制協(xié)議)用法實(shí)例分析
本文實(shí)例講述了python中的TCP(傳輸控制協(xié)議)用法。分享給大家供大家參考,具體如下:
1.TCP與UDP的不同:
windows網(wǎng)絡(luò)調(diào)試助手下載:https://pan.baidu.com/s/1IwBWeAzGUO1A3sCWl20ssQ
提取碼:68gr
或者點(diǎn)擊此處本站下載。
- 面向連接(確認(rèn)有創(chuàng)建三方交握,連接以創(chuàng)建的傳輸)
- 有序數(shù)據(jù)傳輸
- 重發(fā)丟失的數(shù)據(jù)包
- 舍棄重復(fù)的數(shù)據(jù)包
- 無(wú)差錯(cuò)的數(shù)據(jù)傳輸
- 阻塞/流量控制
2.客戶端:
import socket
def main():
# 創(chuàng)建套接字
tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 連接服務(wù)器
#tcp_socket.connect(("172.17.3.97",8080))
server_ip = input("請(qǐng)輸入要鏈接的服務(wù)器ip:")
server_port = int(input("請(qǐng)輸入要鏈接的服務(wù)器port:"))
server_addr = (server_ip,server_port)
tcp_socket.connect(server_addr)
# 發(fā)送數(shù)據(jù)/接收數(shù)據(jù)
send_data = input("請(qǐng)輸入要發(fā)送的數(shù)據(jù):")
tcp_socket.send(send_data.encode("gbk"))
#關(guān)閉套接字
tcp_socket.close()
if __name__ == "__main__":
main()
3.服務(wù)端:可以開(kāi)啟多個(gè)網(wǎng)絡(luò)調(diào)試助手(客戶端)測(cè)試
循環(huán)為多個(gè)客戶端服務(wù),并且循環(huán)為同一個(gè)客戶端服務(wù)
import socket
def main():
# 創(chuàng)建套接字
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 綁定本地信息
tcp_server_socket.bind("",7890)
# 讓默認(rèn)套接字由主動(dòng)變?yōu)楸粍?dòng)listen
tcp_server_socket.listen(128)
while True:
print("等待一個(gè)新的客戶端......")
# 等待客戶端的連接 accept
new_client_socket ,client_addr = tcp_server_socket.accept()
print("一個(gè)新的客戶端已到來(lái)%s" %str(client_addr))
while True:
# 接受客戶端發(fā)過(guò)來(lái)的請(qǐng)求
recv_data = new_client_socket.recv(1024)
print("客戶端發(fā)來(lái)的請(qǐng)求是%s" %recv_data.decode("gbk"))
# 如果recv解堵塞,那么有兩種方式:
# 1.客戶端發(fā)來(lái)數(shù)據(jù)
# 2.客戶端調(diào)用close
if recv_data:
# 回送一部分?jǐn)?shù)據(jù)給客戶端
new_client_socket.send("hahaha".encode("gbk"))
else:
break
# 關(guān)閉套接字
new_client_socket.close()
print("服務(wù)完畢,謝謝光臨!")
# 如果將監(jiān)聽(tīng)套接字關(guān)閉,會(huì)導(dǎo)致不能再次等待新的客戶端到來(lái)
tcp_server_socket.close()
if __name__ == "__main__":
main()
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python Socket編程技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用Python實(shí)現(xiàn)Oracle數(shù)據(jù)庫(kù)自動(dòng)巡檢程序
這篇文章主要為大家詳細(xì)介紹了如何創(chuàng)建一個(gè)Oracle數(shù)據(jù)庫(kù)自動(dòng)巡檢程序,以確保數(shù)據(jù)庫(kù)的順暢運(yùn)行,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
Python基于pandas繪制散點(diǎn)圖矩陣代碼實(shí)例
這篇文章主要介紹了Python基于pandas繪制散點(diǎn)圖矩陣代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
python設(shè)置檢查點(diǎn)簡(jiǎn)單實(shí)現(xiàn)代碼
這篇文章主要介紹了python設(shè)置檢查點(diǎn)簡(jiǎn)單實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-07-07
CNN的Pytorch實(shí)現(xiàn)(LeNet)
本文主要從CNN的Pytorch實(shí)現(xiàn)庫(kù)導(dǎo)入,模型定義,數(shù)據(jù)加載、處理,模型訓(xùn)練,代碼匯總等方面入手介紹,運(yùn)用代碼講解相關(guān)內(nèi)容非常的詳細(xì),大家如果有需要了解相關(guān)知識(shí)的可以參考這篇文章2021-09-09
更新升級(jí)python和pip版本后不生效的問(wèn)題解決
這篇文章主要介紹了更新升級(jí)python和pip版本后不生效的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python實(shí)現(xiàn)XML文件解析的示例代碼
本篇文章主要介紹了Python實(shí)現(xiàn)XML文件解析的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
詳解Python用三種方式統(tǒng)計(jì)詞頻的方法
這篇文章主要介紹了Python用三種方式統(tǒng)計(jì)詞頻,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-07-07

