python如何通過(guò)twisted搭建socket服務(wù)
這篇文章主要介紹了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í)有所幫助,也希望大家多多支持腳本之家。
- Python3.6中Twisted模塊安裝的問(wèn)題與解決
- python安裝twisted的問(wèn)題解析
- python如何通過(guò)twisted實(shí)現(xiàn)數(shù)據(jù)庫(kù)異步插入
- python基于twisted框架編寫(xiě)簡(jiǎn)單聊天室
- python 編程之twisted詳解及簡(jiǎn)單實(shí)例
- Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼
- 剖析Python的Twisted框架的核心特性
- 實(shí)例解析Python的Twisted框架中Deferred對(duì)象的用法
- 詳解Python的Twisted框架中reactor事件管理器的用法
- 使用Python的Twisted框架編寫(xiě)非阻塞程序的代碼示例
- Python的Twisted框架中使用Deferred對(duì)象來(lái)管理回調(diào)函數(shù)
- 使用Python的Twisted框架構(gòu)建非阻塞下載程序的實(shí)例教程
- Python的Twisted框架上手前所必須了解的異步編程思想
- 使用Python的Treq on Twisted來(lái)進(jìn)行HTTP壓力測(cè)試
- 利用Python的Twisted框架實(shí)現(xiàn)webshell密碼掃描器的教程
- 使用Python的Twisted框架實(shí)現(xiàn)一個(gè)簡(jiǎn)單的服務(wù)器
- 使用Python的Twisted框架編寫(xiě)簡(jiǎn)單的網(wǎng)絡(luò)客戶端
- python開(kāi)發(fā)實(shí)例之Python的Twisted框架中Deferred對(duì)象的詳細(xì)用法與實(shí)例
相關(guā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-05Win10下安裝并使用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值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06使用 python 實(shí)現(xiàn)單人AI 掃雷游戲
這篇文章主要介紹了使用 python 實(shí)現(xiàn)單人AI 掃雷游戲,今天我們用 Python 完成這個(gè)小程序,并且用AI來(lái)學(xué)習(xí)并實(shí)現(xiàn)它,需要的朋友可以參考下2021-08-08