私信  •  关注

Benson

Benson 最近创建的主题
Benson 最近回复了
14 年前
回复了 Benson 创建的主题 » python端口转发/多路复用服务器

我不喜欢twisted或scapy,但是使用普通的python套接字很容易做到这一点。它的一个额外优势是它将更加便携。此代码适用于我的有限测试:

#!/usr/bin/python
from socket import *
bufsize = 1024 # Modify to suit your needs
targetHost = "somehost.yourdomain.com"
listenPort = 1123

def forward(data, port):
    print "Forwarding: '%s' from port %s" % (data, port)
    sock = socket(AF_INET, SOCK_DGRAM)
    sock.bind(("localhost", port)) # Bind to the port data came in on
    sock.sendto(data, (targetHost, listenPort))

def listen(host, port):
    listenSocket = socket(AF_INET, SOCK_DGRAM)
    listenSocket.bind((host, port))
    while True:
        data, addr = listenSocket.recvfrom(bufsize)
        forward(data, addr[1]) # data and port

listen("localhost", listenPort)