最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python3實現(xiàn)TCP協(xié)議的簡單服務器和客戶端案例(分享)

 更新時間:2017年06月14日 08:49:15   投稿:jingxian  
下面小編就為大家?guī)硪黄猵ython3實現(xiàn)TCP協(xié)議的簡單服務器和客戶端案例(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

利用python3來實現(xiàn)TCP協(xié)議,和UDP類似。UDP應用于及時通信,而TCP協(xié)議用來傳送文件、命令等操作,因為這些數(shù)據(jù)不允許丟失,否則會造成文件錯誤或命令混亂。下面代碼就是模擬客戶端通過命令行操作服務器??蛻舳溯斎朊?,服務器執(zhí)行并且返回結果。

TCP(Transmission Control Protocol 傳輸控制協(xié)議):是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由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) # 這里的參數(shù)和UDP不一樣。
tcpClient.connect(addr) #由于tcp三次握手機制,需要先連接

while True:
  data = input('>>> ').encode(encoding="utf-8")
  if not data:
    break
  # 數(shù)據(jù)收發(fā)和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) #這里設置監(jiān)聽數(shù)為5(默認值),有點類似多線程。

while True:
  print('Waiting for connection...')
  tcpClient,addr = tcpServer.accept() #拿到5個中一個監(jiān)聽的tcp對象和地址
  print('[+]...connected from:',addr)

  while True:
    cmd = tcpClient.recv(bufsize).decode(encoding="utf-8") 
    print('  [-]cmd:',cmd)
    if not cmd:
      break
    ###這里在cmd中執(zhí)行來自客戶端的命令,并且將結果返回###
    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實現(xiàn)TCP協(xié)議的簡單服務器和客戶端案例(分享)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python實現(xiàn)Kerberos用戶的增刪改查操作

    Python實現(xiàn)Kerberos用戶的增刪改查操作

    這篇文章主要介紹了Python實現(xiàn)Kerberos用戶的增刪改查操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • python實現(xiàn)錄制全屏和選擇區(qū)域錄屏功能

    python實現(xiàn)錄制全屏和選擇區(qū)域錄屏功能

    這篇文章主要介紹了python實現(xiàn)錄制全屏和選擇區(qū)域錄屏功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • python創(chuàng)建文件時去掉非法字符的方法

    python創(chuàng)建文件時去掉非法字符的方法

    今天小編就為大家分享一篇python創(chuàng)建文件時去掉非法字符的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python如何統(tǒng)計函數(shù)調(diào)用的耗時

    Python如何統(tǒng)計函數(shù)調(diào)用的耗時

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)統(tǒng)計函數(shù)調(diào)用的耗時,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • 15個應該掌握的Jupyter Notebook使用技巧(小結)

    15個應該掌握的Jupyter Notebook使用技巧(小結)

    這篇文章主要介紹了15個應該掌握的Jupyter Notebook使用技巧(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • pandas帶有重復索引操作方法

    pandas帶有重復索引操作方法

    今天小編就為大家分享一篇pandas帶有重復索引操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目

    pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目

    這篇文章主要介紹了pandas如何統(tǒng)計某一列或某一行的缺失值數(shù)目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python編寫一個優(yōu)美的下載器

    Python編寫一個優(yōu)美的下載器

    這篇文章主要教大家如何使用Python編寫一個優(yōu)美的下載器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • pycharm 使用心得(一)安裝和首次使用

    pycharm 使用心得(一)安裝和首次使用

    PyCharm 是我用過的python編輯器中,比較順手的一個。而且可以跨平臺,在macos和windows下面都可以用,這點比較好。
    2014-06-06
  • django從請求到響應的過程深入講解

    django從請求到響應的過程深入講解

    這篇文章主要給大家介紹了關于django從請求到響應的過程的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用django具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08

最新評論

西吉县| 武川县| 德保县| 淮滨县| 溆浦县| 定安县| 开阳县| 仪陇县| 阆中市| 静海县| 饶河县| 磐石市| 宽城| 赤城县| 沙雅县| 垫江县| 鹰潭市| 社旗县| 克山县| 山阳县| 高唐县| 靖边县| 依安县| 抚远县| 四会市| 天柱县| 英吉沙县| 连云港市| 安平县| 庆城县| 许昌县| 通州区| 桦南县| 辰溪县| 太湖县| 钟山县| 宜昌市| 眉山市| 乳山市| 通江县| 磴口县|