欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何通過twisted搭建socket服務(wù)

 更新時間:2020年02月03日 08:55:30   作者:一起來學(xué)python  
這篇文章主要介紹了python如何通過twisted搭建socket服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了python如何通過twisted搭建socket服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

服務(wù)端

# -*- coding: utf-8 -*-
# @Time : 2018/9/19 21:41
# @Author : cxa
# @File : tsTservTW.py
# @Software: PyCharm
'''
Twisted Reactor時間戳TCP服務(wù)器
'''
from twisted.internet import protocol, reactor
from time import ctime
import msgpack

PORT = 21567


class TSServProtocol(protocol.Protocol):
  def connectionMade(self):
    '''
    當(dāng)客戶端連接的時候會執(zhí)行該方法
    :return:
    '''
    clnt = self.clnt = self.transport.getPeer().host
    print(f"...來自的{clnt}鏈接:")

  def dataReceived(self, data):
    '''
    接收到客戶端的數(shù)據(jù)
    :param data:
    :return:
    '''
    print(f"來自客戶端:{msgpack.unpackb(data,encoding='utf')}")
    data = f"{ctime()}:來自服務(wù)器:你好"
    self.transport.write(msgpack.packb(data))


if __name__ == '__main__':
  # 創(chuàng)建一個協(xié)議工廠,之所以稱之為工廠是因為,每次得到一個
  # 接入連接時,都能"制造"協(xié)議的一個實例。
  factory = protocol.Factory()

  factory.protocol = TSServProtocol
  print("....等待鏈接..")
  # 使用reactor安裝一個TCP監(jiān)聽器,檢查服務(wù)請求。
  # 當(dāng)它接收到一個請求時,就會創(chuàng)建一個TSServProtocol實例來處理那個客戶端的事務(wù)。
  reactor.listenTCP(PORT, factory)
  reactor.run()

客戶端

# -*- coding: utf-8 -*-
# @Time : 2018/9/19 21:57
# @Author : cxa
# @File : tsTclntTW.py
# @Software: PyCharm
'''
創(chuàng)建Twisted Reactor TCP客戶端
'''
from twisted.internet import protocol, reactor
import msgpack

HOST = 'localhost'
PORT = 21567


class TSClntProtocol(protocol.Protocol):
  def sendData(self):
    data = input('>')
    if data:
      print(f'...發(fā)送數(shù)據(jù) {data}')
      self.transport.write(msgpack.packb(data))
    else:
      self.transport.loseConnection()

  def connectionMade(self):
    self.sendData()

  def dataReceived(self, data):
    print(msgpack.unpackb(data, encoding="utf8"))
    self.sendData()


class TSClntFactory(protocol.ClientFactory):
  protocol = TSClntProtocol
  clientConnctionLost = clientConnctionFailed = lambda self, connector, reason: reactor.stop()


if __name__ == '__main__':
  reactor.connectTCP(HOST, PORT, TSClntFactory())
  reactor.run()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python+OpenCV實現(xiàn)圖像二值化

    詳解Python+OpenCV實現(xiàn)圖像二值化

    圖像二值化就是將圖像上的像素點的灰度值設(shè)置為0或255,也就是將整個圖像呈現(xiàn)出明顯的黑白效果的過程。本文將通過Python+OpenCV實現(xiàn)這一過程,感興趣的可以學(xué)習(xí)一下
    2022-05-05
  • Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程分析(顯卡MX250+CUDA9.0+cudnn)

    Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程分析(顯卡MX250+CUDA9.

    這篇文章主要介紹了Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程(顯卡MX250+CUDA9.0+cudnn),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 在keras中實現(xiàn)查看其訓(xùn)練loss值

    在keras中實現(xiàn)查看其訓(xùn)練loss值

    這篇文章主要介紹了在keras中實現(xiàn)查看其訓(xùn)練loss值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python如何匹配文本并在其上一行追加文本

    Python如何匹配文本并在其上一行追加文本

    這篇文章主要介紹了Python如何匹配文本并在其上一行追加文本,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python協(xié)程原理全面分析

    Python協(xié)程原理全面分析

    協(xié)程(co-routine,又稱微線程、纖程)是一種多方協(xié)同的工作方式。協(xié)程不是進程或線程,其執(zhí)行過程類似于Python函數(shù)調(diào)用,Python的asyncio模塊實現(xiàn)的異步IO編程框架中,協(xié)程是對使用async關(guān)鍵字定義的異步函數(shù)的調(diào)用
    2023-02-02
  • 發(fā)布你的Python模塊詳解

    發(fā)布你的Python模塊詳解

    這篇文章主要介紹了發(fā)布你的Python模塊詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • MySQL Prepared語句的具體使用

    MySQL Prepared語句的具體使用

    本文主要介紹了MySQL Prepared語句的具體使用,可以利用prepared語句來避免重復(fù)解析SQL的開銷,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • 使用 python 實現(xiàn)單人AI 掃雷游戲

    使用 python 實現(xiàn)單人AI 掃雷游戲

    這篇文章主要介紹了使用 python 實現(xiàn)單人AI 掃雷游戲,今天我們用 Python 完成這個小程序,并且用AI來學(xué)習(xí)并實現(xiàn)它,需要的朋友可以參考下
    2021-08-08
  • python中update()函數(shù)的使用方法

    python中update()函數(shù)的使用方法

    Python字典update()方法用于更新字典中的鍵/值對,可以修改存在的鍵對應(yīng)的值,也可以添加新的鍵/值對到字典中,這篇文章主要給大家介紹了關(guān)于python中update()函數(shù)的使用方法,需要的朋友可以參考下
    2024-02-02
  • Python Scrapy?框架簡單介紹

    Python Scrapy?框架簡單介紹

    Scrapy是適用于Python的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù),這篇文章主要介紹了Scrapy框架優(yōu)點及簡單介紹,需要的朋友可以參考下
    2023-05-05

最新評論