溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在python中使用TCP傳輸控制協(xié)議

發(fā)布時間:2021-05-12 17:17:56 來源:億速云 閱讀:214 作者:Leah 欄目:開發(fā)技術(shù)

如何在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)知識。

向AI問一下細(xì)節(jié)

免責(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)容。

AI