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ù)包
- 無差錯(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ù)端:可以開啟多個(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è)新的客戶端已到來%s" %str(client_addr)) while True: # 接受客戶端發(fā)過來的請(qǐng)求 recv_data = new_client_socket.recv(1024) print("客戶端發(fā)來的請(qǐng)求是%s" %recv_data.decode("gbk")) # 如果recv解堵塞,那么有兩種方式: # 1.客戶端發(fā)來數(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)聽套接字關(guān)閉,會(huì)導(dǎo)致不能再次等待新的客戶端到來 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的Tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器
這篇文章主要介紹了基于python的Tkinter實(shí)現(xiàn)一個(gè)簡(jiǎn)易計(jì)算器的相關(guān)資料,還為大家分享了僅用用50行Python代碼實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器,感興趣的小伙伴們可以參考一下2015-12-12django model去掉unique_together報(bào)錯(cuò)的解決方案
本文給大家分享的是在使用django model去掉unique_together時(shí)報(bào)錯(cuò)的解決思路和具體步驟,提供給大家參考下,希望對(duì)大家學(xué)習(xí)使用django能夠有所幫助2016-10-10Python OpenCV學(xué)習(xí)之圖像濾波詳解
圖像濾波的作用簡(jiǎn)單來說就是將一副圖像通過濾波器得到另一幅圖像;明確一個(gè)概念,濾波器又被稱為卷積核,濾波的過程又被稱為卷積;實(shí)際上深度學(xué)習(xí)就是訓(xùn)練許多適應(yīng)任務(wù)的濾波器,本質(zhì)上就是得到最佳的參數(shù)。下面來跟隨小編一起深入了解一下圖像濾波吧2022-01-01Python繪圖實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用詳解
這篇文章主要為大家詳細(xì)介紹了Python在繪圖時(shí)如何實(shí)現(xiàn)坐標(biāo)軸共享與復(fù)用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02快速了解Python開發(fā)環(huán)境Spyder
這篇文章主要介紹了Python開發(fā)環(huán)境Spyder的的相關(guān)資料,幫助大家更快的上手Spyder,感興趣的朋友可以了解下2020-06-06Python之Selenium自動(dòng)化瀏覽器測(cè)試詳解
這篇文章主要為大家詳細(xì)介紹了Python自動(dòng)化瀏覽器測(cè)試,使用Selenium,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01Python實(shí)現(xiàn)郵件發(fā)送功能的示例詳解
Python對(duì)SMTP支持有smtplib和email兩個(gè)模塊,email負(fù)責(zé)構(gòu)造郵件,smtplib負(fù)責(zé)發(fā)送郵件。本文將以qq郵箱為例,實(shí)現(xiàn)自己給自己發(fā)送郵件的功能,感興趣的可以了解一下2022-11-11