python怎样通过twisted搭建socket服务
人气:0这篇文章主要介绍了python如何通过twisted搭建socket服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
服务端
# -*- coding: utf-8 -*- # @Time : 2018/9/19 21:41 # @Author : cxa # @File : tsTservTW.py # @Software: PyCharm ''' Twisted Reactor时间戳TCP服务器 ''' from twisted.internet import protocol, reactor from time import ctime import msgpack PORT = 21567 class TSServProtocol(protocol.Protocol): def connectionMade(self): ''' 当客户端连接的时候会执行该方法 :return: ''' clnt = self.clnt = self.transport.getPeer().host print(f"...来自的{clnt}链接:") def dataReceived(self, data): ''' 接收到客户端的数据 :param data: :return: ''' print(f"来自客户端:{msgpack.unpackb(data,encoding='utf')}") data = f"{ctime()}:来自服务器:你好" self.transport.write(msgpack.packb(data)) if __name__ == '__main__': # 创建一个协议工厂,之所以称之为工厂是因为,每次得到一个 # 接入连接时,都能"制造"协议的一个实例。 factory = protocol.Factory() factory.protocol = TSServProtocol print("....等待链接..") # 使用reactor安装一个TCP监听器,检查服务请求。 # 当它接收到一个请求时,就会创建一个TSServProtocol实例来处理那个客户端的事务。 reactor.listenTCP(PORT, factory) reactor.run()
客户端
# -*- coding: utf-8 -*- # @Time : 2018/9/19 21:57 # @Author : cxa # @File : tsTclntTW.py # @Software: PyCharm ''' 创建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'...发送数据 {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()
您可能感兴趣的文章:
- Python3.6中Twisted模块安装的问题与解决
- python安装twisted的问题解析
- python如何通过twisted实现数据库异步插入
- python基于twisted框架编写简单聊天室
- python 编程之twisted详解及简单实例
- Python 基于Twisted框架的文件夹网络传输源码
- 剖析Python的Twisted框架的核心特性
- 实例解析Python的Twisted框架中Deferred对象的用法
- 详解Python的Twisted框架中reactor事件管理器的用法
- 使用Python的Twisted框架编写非阻塞程序的代码示例
- Python的Twisted框架中使用Deferred对象来管理回调函数
- 使用Python的Twisted框架构建非阻塞下载程序的实例教程
- Python的Twisted框架上手前所必须了解的异步编程思想
- 使用Python的Treq on Twisted来进行HTTP压力测试
- 利用Python的Twisted框架实现webshell密码扫描器的教程
- 使用Python的Twisted框架实现一个简单的服务器
- 使用Python的Twisted框架编写简单的网络客户端
- python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
加载全部内容