如下代码是关于python利用asyncore的端口映射(端口转发)的代码。
import socket,asyncore
class forwarder(asyncore.dispatcher):
def init(self, ip, port, remoteip,remoteport,backlog=5):
asyncore.dispatcher.init(self)
self.remoteip=remoteip
self.remoteport=remoteport
self.create_socket(socket.AF_INET,socket.SOCK_STREAM)
self.set_reuse_addr()
self.bind((ip,port))
self.listen(backlog)
def handle_accept(self):
conn, addr = self.accept()
# print '--- Connect --- '
sender(receiver(conn),self.remoteip,self.remoteport)
class receiver(asyncore.dispatcher):
def init(self,conn):
asyncore.dispatcher.init(self,conn)
self.from_remote_buffer=’’
self.to_remote_buffer=’’
self.sender=None
def handle_connect(self):
pass
def handle_read(self):
read = self.recv(40