亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

服務(wù)端

# -*- coding: utf-8 -*-
# @Time : 2018/9/19 21:41
# @Author : cxa
# @File : tsTservTW.py
# @Software: PyCharm
'''
Twisted Reactor時(shí)間戳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)客戶端連接的時(shí)候會(huì)執(zhí)行該方法
    :return:
    '''
    clnt = self.clnt = self.transport.getPeer().host
    print(f"...來(lái)自的{clnt}鏈接:")

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


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

  factory.protocol = TSServProtocol
  print("....等待鏈接..")
  # 使用reactor安裝一個(gè)TCP監(jiān)聽(tīng)器,檢查服務(wù)請(qǐng)求。
  # 當(dāng)它接收到一個(gè)請(qǐng)求時(shí),就會(huì)創(chuàng)建一個(gè)TSServProtocol實(shí)例來(lái)處理那個(gè)客戶端的事務(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()

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    MySQL Prepared語(yǔ)句的具體使用

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

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

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

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

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

    Python Scrapy?框架簡(jiǎn)單介紹

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

最新評(píng)論