您好,登錄后才能下訂單哦!
如何在python中使用TCP傳輸控制協議?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1.TCP與UDP的不同:
面向連接(確認有創建三方交握,連接以創建的傳輸)
有序數據傳輸
重發丟失的數據包
舍棄重復的數據包
無差錯的數據傳輸
阻塞/流量控制
2.客戶端:
import socket def main(): # 創建套接字 tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 連接服務器 #tcp_socket.connect(("172.17.3.97",8080)) server_ip = input("請輸入要鏈接的服務器ip:") server_port = int(input("請輸入要鏈接的服務器port:")) server_addr = (server_ip,server_port) tcp_socket.connect(server_addr) # 發送數據/接收數據 send_data = input("請輸入要發送的數據:") tcp_socket.send(send_data.encode("gbk")) #關閉套接字 tcp_socket.close() if __name__ == "__main__": main()
3.服務端:可以開啟多個網絡調試助手(客戶端)測試
循環為多個客戶端服務,并且循環為同一個客戶端服務
import socket def main(): # 創建套接字 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 綁定本地信息 tcp_server_socket.bind("",7890) # 讓默認套接字由主動變為被動listen 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: # 接受客戶端發過來的請求 recv_data = new_client_socket.recv(1024) print("客戶端發來的請求是%s" %recv_data.decode("gbk")) # 如果recv解堵塞,那么有兩種方式: # 1.客戶端發來數據 # 2.客戶端調用close if recv_data: # 回送一部分數據給客戶端 new_client_socket.send("hahaha".encode("gbk")) else: break # 關閉套接字 new_client_socket.close() print("服務完畢,謝謝光臨!") # 如果將監聽套接字關閉,會導致不能再次等待新的客戶端到來 tcp_server_socket.close() if __name__ == "__main__": main()
python可以做什么
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
關于如何在python中使用TCP傳輸控制協議問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。