4.twisted TCPserver和TCPclient

本文介绍了一个使用Twisted实现的TCP服务端和客户端的示例代码。服务端利用了protocol.Proctocol和protocol.ServerFactory创建,并通过telnet进行测试验证;客户端则通过继承protocol.ClientFactory实现连接并立即断开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

twisted TCP服务端:

主要利用protocol.Proctocol和 protocol.ServerFactory

__author__ = 'python'
from twisted.application.service import  Application,Service
from twisted.internet import  reactor,protocol
class MyProtocol(protocol.Protocol):
    def __init__(self,aaa):
        self.flag=123
        self.aaa=aaa
    def dataReceived(self, data):
        print data
        self.transport.write(self.factory.returnFlag())
    def connectionMade(self):
        print "connected!"
    def connectionLost(self, reason):
        print dir(reason)
class MyFactory(protocol.ServerFactory):
    def __init__(self):
        self.flag="456"
    def buildProtocol(self, addr):
        p=MyProtocol(999)
        p.factory=self
        return  p
    def returnFlag(self):
        return self.flag
myfactory=MyFactory()
reactor.listenTCP(8080,myfactory)
reactor.run()

利用telnet测试服务端是否正常:

[root@zkp534 ~]# telnet   192.168.13.187 8080

Trying 192.168.13.187...

Connected to 192.168.13.187.

Escape character is '^]'.

11

45612

456213

456213

456213

456123

456213

456

twisted  TCP client:

主要适用protocol.Protocol和protocol.ClientFactory

一个TCP客户端例子如下:
from twisted.internet import reactor,protocol
class QuickDisconnectedProtocol(protocol.Protocol):
    def connectionMade(self):
        print "connected to %s"%self.transport.getPeer().host
        self.transport.loseConnection()
class ClientFactory(protocol.ClientFactory):
    protocol=QuickDisconnectedProtocol
    def clientConnectionLost(self,connection,reason):
        print "lost connection :%s"%reason.getErrorMessage()
        reactor.stop()
    def clientConnectionFailed(self,connection,reason):
        print "connection failed:%s"%reason.getErrorMessage()
        reactor.stop()
reactor.connectTCP("10.0.20.150",80,ClientFactory())
reactor.run()

转载于:https://www.cnblogs.com/wolover/p/5749542.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值