您好,登錄后才能下訂單哦!
如何在python中使用TCP傳輸控制協(xié)議?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1.TCP與UDP的不同:
面向連接(確認(rèn)有創(chuàng)建三方交握,連接以創(chuàng)建的傳輸)
有序數(shù)據(jù)傳輸
重發(fā)丟失的數(shù)據(jù)包
舍棄重復(fù)的數(shù)據(jù)包
無差錯的數(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("請輸入要鏈接的服務(wù)器ip:") server_port = int(input("請輸入要鏈接的服務(wù)器port:")) server_addr = (server_ip,server_port) tcp_socket.connect(server_addr) # 發(fā)送數(shù)據(jù)/接收數(shù)據(jù) send_data = input("請輸入要發(fā)送的數(shù)據(jù):") tcp_socket.send(send_data.encode("gbk")) #關(guān)閉套接字 tcp_socket.close() if __name__ == "__main__": main()
3.服務(wù)端:可以開啟多個網(wǎng)絡(luò)調(diào)試助手(客戶端)測試
循環(huán)為多個客戶端服務(wù),并且循環(huán)為同一個客戶端服務(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)套接字由主動變?yōu)楸粍觢isten tcp_server_socket.listen(128) while True: print("等待一個新的客戶端......") # 等待客戶端的連接 accept new_client_socket ,client_addr = tcp_server_socket.accept() print("一個新的客戶端已到來%s" %str(client_addr)) while True: # 接受客戶端發(fā)過來的請求 recv_data = new_client_socket.recv(1024) print("客戶端發(fā)來的請求是%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)閉,會導(dǎo)致不能再次等待新的客戶端到來 tcp_server_socket.close() if __name__ == "__main__": main()
python可以做什么
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
關(guān)于如何在python中使用TCP傳輸控制協(xié)議問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。