好的!这里给你几个 Twisted框架基础示例代码,涵盖TCP服务器、TCP客户端、HTTP服务器,帮你快速上手。


1. TCP服务器示例

from twisted.internet import reactor, protocol

class Echo(protocol.Protocol):
    def dataReceived(self, data):
        print("收到数据:", data.decode())
        self.transport.write(data)  # 原样返回数据

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

if __name__ == "__main__":
    port = 8000
    reactor.listenTCP(port, EchoFactory())
    print(f"TCP服务器启动,监听端口 {port}")
    reactor.run()

启动后,TCP客户端连接服务器,服务器会把收到的数据原样返回。


2. TCP客户端示例

from twisted.internet import reactor, protocol

class EchoClient(protocol.Protocol):
    def connectionMade(self):
        self.transport.write(b"Hello, Twisted TCP Server!")

    def dataReceived(self, data):
        print("服务器回复:", data.decode())
        self.transport.loseConnection()

    def connectionLost(self, reason):
        print("连接断开")
        reactor.stop()

class EchoClientFactory(protocol.ClientFactory):
    def buildProtocol(self, addr):
        return EchoClient()

    def clientConnectionFailed(self, connector, reason):
        print("连接失败:", reason.getErrorMessage())
        reactor.stop()

if __name__ == "__main__":
    host = "127.0.0.1"
    port = 8000
    reactor.connectTCP(host, port, EchoClientFactory())
    reactor.run()

该客户端连接上面的TCP服务器,发送一条消息并打印服务器返回。


3. 简单HTTP服务器示例

from twisted.web import server, resource
from twisted.internet import reactor

class HelloResource(resource.Resource):
    isLeaf = True

    def render_GET(self, request):
        return b"Hello, Twisted HTTP!"

if __name__ == "__main__":
    site = server.Site(HelloResource())
    port = 8080
    reactor.listenTCP(port, site)
    print(f"HTTP服务器启动,监听端口 {port}")
    reactor.run()

启动后访问 http://localhost:8080 会看到浏览器显示 “Hello, Twisted HTTP!”


随时告诉我!