我很好奇我如何使用异步模块创建UDP代理服务器.我今天早些时候尝试了Twisted,但进展不大.我确实在这里直接使用套接字在stackoverflow上找到了一些简单的解决方案,但是我想知道是否可以使用异步库来实现.
为了清楚起见,我正在寻找的是:
步骤1:客户A(可能很多)与代理B通话
步骤2:代理B将请求发送到服务器C.
步骤3:服务器C响应代理B
9月4日:代理B响应客户端A.
这是我到目前为止的内容:
import asyncio
class EchoServerProtocol(asyncio.DatagramProtocol):
def connection_made(self, transport):
self.transport = transport
def datagram_received(self, data, addr, args=None):
message = data
server_addr = ('localhost', 27015)
print('Received %r from %s' % (message, addr))
print('Send %r to %s' % (message, server_addr))
self.transport.sendto(data, server_addr)
loop = asyncio.get_event_loop()
print("Starting UDP server")
# One protocol instance will be created to serve all client re