我有以下子程序:
use Socket
...
sub proxy_connect {
my $iaddr = Socket::inet_aton($proxy);
my $paddr = Socket::sockaddr_in(81, $iaddr);
my $proto = getprotobyname('tcp');
my $fh = new FileHandle;
socket($fh, PF_INET, SOCK_STREAM, $proto) or return;
connect($fh, $paddr) or return;
$fh->autoflush(1);
# return a pointer to file handle
return \$fh;
}
my $mysock = proxy_connect();
Python 的方法完全不同,我没有返回一个 File 对象,而是返回一个套接字,但我不确定功能是否完全相同:
import socket
...
def proxy_connect():
"""
Connect to the proxy and return a filehandle for it.
"""
proxy = "proxy.mydomain.com"
address = socket.gethostbyname(proxy)
con = socket.socket(
socket.AF_INET, socket.SOCK_STREAM)
con.connect((address, 81))
return con
我在翻译这个tunnel-ssh-over-http的正确道路上吗?注意,我是 Perl 的新手,这只是作为一个练习来学习更多关于 Perl 和套接字(在 Python 中)的东西。