好的!这里给你几个 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!”
随时告诉我!
发表回复