Python等价于'io.Copy'`
我试图用python实现一个tcp代理 所以我需要直接连接两个插座,在它们之间传递输入和输出 在golang中,我只需执行一个Python等价于'io.Copy'`,python,sockets,go,proxy,Python,Sockets,Go,Proxy,我试图用python实现一个tcp代理 所以我需要直接连接两个插座,在它们之间传递输入和输出 在golang中,我只需执行一个io.Copy,在Python2.6中的等价物是什么 go func() { defer conn1.Close() defer conn2.Close() io.Copy(conn1, conn2) }() 您可以使用如下函数: def CopyProxy(conn1, conn2): while True:
io.Copy
,在Python2.6中的等价物是什么
go func() {
defer conn1.Close()
defer conn2.Close()
io.Copy(conn1, conn2)
}()
您可以使用如下函数:
def CopyProxy(conn1, conn2):
while True:
data = conn2.recv(BUFFER_SIZE)
try:
conn1.send(data)
if not data:
conn1.close()
conn2.close()
break
except Exception:
break
然后在单独的线程中启动它们:
# conn1 and conn2 - previously opened connections "to" and "from"
t1 = threading.Thread(target=CopyProxy, args=[conn1, conn2])
t2 = threading.Thread(target=CopyProxy, args=[conn2, conn1])
t1.start()
t2.start()
shutil.copyfileobj
withsocket.socket.makefile
@NizamMohamed你能提供一个例子吗?@NizamMohamed对我不起作用,shutil.copyfileobj(sock1.makefile(),sock2.makefile())
澄清什么是“tcp代理”以及它在哪里适用。在TCP中,一端启动连接(客户端),另一端接收(服务器)。你说的是哪一头?