怎么在python中建立一個(gè)TCP框架?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
在管城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司 網(wǎng)站設(shè)計(jì)制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)營銷網(wǎng)站建設(shè),管城網(wǎng)站建設(shè)費(fèi)用合理。
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
1、優(yōu)點(diǎn)
(1)應(yīng)答機(jī)制:TCP發(fā)送的每個(gè)報(bào)文段都必須得到接收方得應(yīng)答才認(rèn)為這個(gè)TCP報(bào)文段傳輸成功
(2)超時(shí)重發(fā):發(fā)送端發(fā)出一個(gè)報(bào)文段之后,就啟動定時(shí)器,如果在定時(shí)時(shí)間內(nèi)沒有收到應(yīng)答就重新發(fā)送這個(gè)報(bào)文段
(3)錯(cuò)誤校驗(yàn):TCP會用一個(gè)校驗(yàn)的函數(shù)來檢查數(shù)據(jù)是否有錯(cuò)誤,在發(fā)送和接收的時(shí)候都會有校驗(yàn)
(4)流量管控和防阻塞管理:流量控制用來避免主機(jī)因?yàn)橄l(fā)送過快而來不及完全接受
2、搭建框架步驟
(1)導(dǎo)入模塊
(2)創(chuàng)建套接字
(3)設(shè)置地址可以重用
(4)綁定端口
(5)設(shè)置監(jiān)聽,套接字由主動變?yōu)楸粍?/p>
(6)接收客戶端連接
(7)接受客戶端發(fā)送的信息
(8)解碼數(shù)據(jù)并輸出
(9)關(guān)閉和當(dāng)前客戶端的連接
3、實(shí)例
# 1.導(dǎo)入模塊 import socket import threading def recv_msg(new_tcp_socket, ip_port): """ 接受信息的函數(shù) :return: """ # 這個(gè)while可以不間斷的接收客戶端信息 while True: # 7.接受客戶端發(fā)送的信息 recv_data = new_tcp_socket.recv(1024) if recv_data: # 8.解碼數(shù)據(jù)并輸出 recv_text = recv_data.decode('gbk') print('來自[%s]的信息:%s' % (str(ip_port), recv_text)) else: break # 關(guān)閉客戶端連接 new_tcp_socket.close() # 2.創(chuàng)建套接字 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 3.設(shè)置地址可以重用 tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) # 4.綁定端口 tcp_server_socket.bind(("", 8080)) # 5.設(shè)置監(jiān)聽,套接字由主動變?yōu)楸粍? tcp_server_socket.listen(128) # 用一個(gè)while True來接受多個(gè)客戶端連接 while True: # 6.接收客戶端連接 new_tcp_socket, ip_port = tcp_server_socket.accept() print('新用戶[%s]連接' % str(ip_port)) # 創(chuàng)建線程 thread_msg = threading.Thread(target=recv_msg, args=(new_tcp_socket, ip_port)) # 子線程守護(hù)主線程 thread_msg.setDaemon(True) # 啟動線程 thread_msg.start() # 調(diào)用接收函數(shù) # recv_msg(new_tcp_socket, ip_port) # tcp_server_socket.close()
關(guān)于怎么在python中建立一個(gè)TCP框架問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
分享名稱:怎么在python中建立一個(gè)TCP框架
當(dāng)前URL:http://jinyejixie.com/article4/pggiie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站建設(shè)、定制開發(fā)、App開發(fā)、網(wǎng)站維護(hù)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)