私は次のサブルーチンを持っています:
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)についてさらに学ぶための演習として行われたものであることに注意してください。