python如何通過twisted搭建socket服務(wù)
更新時間:2020年02月03日 08:55:30 作者:一起來學python
這篇文章主要介紹了python如何通過twisted搭建socket服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了python如何通過twisted搭建socket服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
服務(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):
'''
當客戶端連接的時候會執(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ù)請求。
# 當它接收到一個請求時,就會創(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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Python3.6中Twisted模塊安裝的問題與解決
- python安裝twisted的問題解析
- python如何通過twisted實現(xiàn)數(shù)據(jù)庫異步插入
- python基于twisted框架編寫簡單聊天室
- python 編程之twisted詳解及簡單實例
- Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼
- 剖析Python的Twisted框架的核心特性
- 實例解析Python的Twisted框架中Deferred對象的用法
- 詳解Python的Twisted框架中reactor事件管理器的用法
- 使用Python的Twisted框架編寫非阻塞程序的代碼示例
- Python的Twisted框架中使用Deferred對象來管理回調(diào)函數(shù)
- 使用Python的Twisted框架構(gòu)建非阻塞下載程序的實例教程
- Python的Twisted框架上手前所必須了解的異步編程思想
- 使用Python的Treq on Twisted來進行HTTP壓力測試
- 利用Python的Twisted框架實現(xiàn)webshell密碼掃描器的教程
- 使用Python的Twisted框架實現(xiàn)一個簡單的服務(wù)器
- 使用Python的Twisted框架編寫簡單的網(wǎng)絡(luò)客戶端
- python開發(fā)實例之Python的Twisted框架中Deferred對象的詳細用法與實例
相關(guān)文章
Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程分析(顯卡MX250+CUDA9.
這篇文章主要介紹了Win10下安裝并使用tensorflow-gpu1.8.0+python3.6全過程(顯卡MX250+CUDA9.0+cudnn),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02

