首頁 後端開發 Python教學 如何利用python3來實現TCP協定?

如何利用python3來實現TCP協定?

Jun 16, 2017 am 10:51 AM

下面小編就為大家帶來一篇python3實作TCP協定的簡單伺服器和客戶端案例(分享)。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

利用python3來實作TCP協議,和UDP類似。 UDP應用於及時通信,而TCP協定用來傳送檔案、命令等操作,因為這些資料不允許遺失,否則會造成檔案錯誤或命令混亂。下面程式碼就是模擬客戶端透過命令列操作伺服器。客戶端輸入命令,伺服器執行並且傳回結果。

TCP(Transmission Control Protocol 傳輸控制協定):是一種面向連接的、可靠的、基於位元組流的傳輸層通訊協議,由IETF的RFC 793定義。

TCP客戶端


#
from socket import *

host = '192.168.48.128'
port = 13141
addr = (host,port)
bufsize=1024

tcpClient = socket(AF_INET,SOCK_STREAM) # 这里的参数和UDP不一样。
tcpClient.connect(addr) #由于tcp三次握手机制,需要先连接

while True:
  data = input('>>> ').encode(encoding="utf-8")
  if not data:
    break
  # 数据收发和UDP基本一致
  tcpClient.send(data) 
  data = tcpClient.recv(bufsize).decode(encoding="utf-8") 
  print(data)

tcpClient.close()
登入後複製

TCP客戶端


from socket import *
from time import ctime
import os 

host = ''
port = 13140
bufsize = 1024
addr = (host,port)

tcpServer = socket(AF_INET,SOCK_STREAM)
tcpServer.bind(addr)
tcpServer.listen(5) #这里设置监听数为5(默认值),有点类似多线程。

while True:
  print('Waiting for connection...')
  tcpClient,addr = tcpServer.accept() #拿到5个中一个监听的tcp对象和地址
  print('[+]...connected from:',addr)

  while True:
    cmd = tcpClient.recv(bufsize).decode(encoding="utf-8") 
    print('  [-]cmd:',cmd)
    if not cmd:
      break
    ###这里在cmd中执行来自客户端的命令,并且将结果返回###
    cmd = os.popen(cmd) ###os.popen(cmd)对象是file对象子类,所以可以file的方法
    cmdResult = cmd.read()
    cmdStatus = cmd.close()
    #################################################
    data = cmdResult if (not cmdStatus) else "ERROR COMMAND"
    tcpClient.send(data.encode(encoding="utf-8"))

  tcpClient.close() #
  print(addr,'End')
tcpServer.close() #两次关闭,第一次是tcp对象,第二次是tcp服务器
登入後複製

以上是如何利用python3來實現TCP協定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

win11怎麼更改tcp協定? win11系統tcp協定更改方法詳情 win11怎麼更改tcp協定? win11系統tcp協定更改方法詳情 Feb 01, 2024 pm 05:30 PM

Windows系統中的傳輸協定之一是TCP協議,它在運行和使用某些功能時是必需的。最近,一些Win11用戶遇到了TCP協議的問題,需要進行修改。然而,很多人不知道如何操作才能成功修改。為了解決這個問題,本期Win11教學將為大家提供詳細的設定方法。如果您需要,請造訪本站以取得完整的步驟。 win11怎麼更改tcp協定:1.先滑鼠右鍵點選右下角的網路圖標,開啟網路和internet設定。 3、然後開啟相關設定下的更多網路介面卡選項。 5.打開後,就能找到tcp協定了,雙擊可以打開它。 7.還能點擊高級以修

Go語言中的TCP協定與非同步IO處理技術 Go語言中的TCP協定與非同步IO處理技術 Jun 02, 2023 am 09:10 AM

隨著網路技術的不斷發展,TCP協定和非同步IO處理技術也愈發重要。作為一門現代化的程式語言,Go語言自然支援TCP協定和非同步IO處理技術,這使得Go語言在開發網路應用中極為方便且有效率。本篇文章將從TCP協定和非同步IO處理技術兩個面向來探討Go語言在網路應用開發的優勢。一、TCP協定TCP協定是一種可靠的、面向連線的網路傳輸協定。它能夠保障網路傳輸的可靠性,

如何在Windows 11系統中變更TCP協定設定 如何在Windows 11系統中變更TCP協定設定 Apr 02, 2024 pm 01:43 PM

在Windows11作業系統中,TCP協定作為底層通訊架構的關鍵部分,對系統內眾多功能的穩定運作起著不可或缺的作用。當有使用者意圖根據自身需求對TCP協定進行個人化調整時,可能會面臨操作上的困惑。為此,以下為大家帶來如何在Windows11系統中更改TCP協定設定的詳細操作步驟,一起來看看吧。更改方法1、右鍵點擊右下角工作列中的網路圖標,接著選擇選項清單中的"網路和internet設定"。 2.進入新的介面後,點選右側中的"進階網路設定"選項。 3.隨後點擊"相關設定"中的"更多網路介面卡選項"。 4、之

tcp屬於哪一層的協議 tcp屬於哪一層的協議 Jul 05, 2023 am 10:52 AM

tcp是「傳輸層」的協定。 tcp指的是“傳輸控制協議”,是一種面向連接的、可靠的、基於字節流的傳輸層通信協議,tcp補充了Internet協議,它定義了用於識別Internet上系統的IP地址,主要確保不同節點之間的端對端資料傳輸。

python3如何安裝pip python3如何安裝pip Dec 20, 2023 pm 05:42 PM

安裝步驟:1、確保已經安裝了Python3,並且可以透過命令列存取;2、開啟終端,輸入「python3 -m ensurepip --upgrade」命令來安裝pip;3、從Python官方網站下載pip的安裝包; 4.將下載的pip安裝包解壓縮到一個目錄中;5、開啟終端,並導航到解壓縮後的pip目錄;6、執行「python3 setup.py install」指令安裝pip即可。

Workerman開發:如何實現基於TCP協定的即時通訊 Workerman開發:如何實現基於TCP協定的即時通訊 Nov 07, 2023 am 10:34 AM

Workerman開發:如何實現基於TCP協定的即時通訊引言:隨著網路時代的發展,即時通訊在我們日常生活中扮演了重要的角色。而基於TCP協定的即時通訊已成為常見的解決方案。本文將介紹如何使用Workerman框架,透過撰寫具體的程式碼範例,實現基於TCP協定的即時通訊。一、Workerman簡介Workerman是高效能的PHPSocket服務框架

如何在Go語言中使用TCPF協定進行網路通信 如何在Go語言中使用TCPF協定進行網路通信 Mar 28, 2024 am 08:06 AM

如何在Go語言中使用TCP協定進行網路通訊在Go語言中,我們可以使用net包提供的方法來實作TCP協定進行網路通訊。透過建立TCP連接,我們可以實現客戶端和伺服器之間的資料傳輸。以下將詳細介紹如何在Go語言中使用TCP協定進行網路通信,包括客戶端和伺服器端的實現,以及具體的程式碼範例。 1.TCP客戶端在Go語言中,我們可以透過net包提供的Dial函數來建立

Workerman開發:如何實現基於TCP協定的遠端檔案管理系統 Workerman開發:如何實現基於TCP協定的遠端檔案管理系統 Nov 07, 2023 am 08:46 AM

Workerman開發:如何實現基於TCP協定的遠端檔案管理系統引言:隨著雲端運算和遠端工作的興起,遠端檔案管理系統成為了越來越多企業和個人的需求。在本文中,我們將介紹如何利用Workerman框架實作一個基於TCP協定的遠端檔案管理系統,並提供具體的程式碼範例。一、準備工作在開始編寫程式碼之前,我們需要準備一些必要的工具和環境。首先,確保你已經安裝了PHP環境,

See all articles