您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要介绍了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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。