ਕਨੈਕਸ਼ਨ ਫੇਲ੍ਹ ਹੋਣ 'ਤੇ IO::Socket::Socks SOCKS ਦਾ ਆਦਾਨ-ਪ੍ਰਦਾਨ ਪ੍ਰਿੰਟ ਕਰ ਸਕਦਾ ਹੈ। ਪ੍ਰਾਕਸੀ, ਮੰਜ਼ਿਲ ਅਤੇ ਡੀਬੱਗ ਚੋਣ ਸਪਸ਼ਟ ਰੂਪ ਵਿੱਚ ਦਿਓ:

use IO::Socket::Socks;

my $socket = IO::Socket::Socks->new(
    ProxyAddr   => 'proxy.example',
    ProxyPort   => 1080,
    ConnectAddr => 'www.example.com',
    ConnectPort => 80,
    SocksVersion => 5,
    SocksDebug  => 1,
    Timeout     => 10,
) or die $SOCKS_ERROR;

$socket->close();

ਮੋਡਿਊਲ SocksDebug ਨੂੰ SOCKS ਟ੍ਰੈਫਿਕ ਨੂੰ ਪ੍ਰੋਟੋਕੋਲ-ਕੇਂਦਰਿਤ ਰੂਪ ਵਿੱਚ ਦਿਖਾਉਣ ਵਾਲਾ ਦੱਸਦਾ ਹੈ। ਗੱਲਬਾਤ ਕਿੰਨੀ ਅੱਗੇ ਗਈ ਹੈ ਦੇਖਣ ਅਤੇ ਵਾਪਸ ਮਿਲਿਆ SOCKS ਫੇਲ੍ਹਤਾ ਕੋਡ ਜਾਂਚਣ ਲਈ ਇਸ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ProxyAddr ਅਤੇ ProxyPort ਵਿਚੋਲੇ ਦੀ ਪਛਾਣ ਕਰਦੇ ਹਨ। SOCKS5 ਪ੍ਰਾਕਸੀ ਸੂਚੀ ਤੋਂ ਬਿਨਾਂ ਪ੍ਰਮਾਣਿਕਤਾ ਵਾਲਾ ਪਤਾ ਮਨਜ਼ੂਰ ਜਨਤਕ HTTP ਟੈਸਟ ਲਈ ਉਹ ਖੇਤਰ ਭਰ ਸਕਦਾ ਹੈ। ConnectAddr ਅਤੇ ConnectPort ਉਸ ਸੇਵਾ ਦੀ ਪਛਾਣ ਕਰਦੇ ਹਨ ਜਿਸ ਨਾਲ ਜੁੜਨਾ ਹੈ। ਲਿਸਨਰ ਤੱਕ ਪਹੁੰਚਣ ਵਿੱਚ ਗਲਤੀ ਅਤੇ ਨਕਾਰਾਤਮਕ SOCKS ਕਨੈਕਸ਼ਨ ਜਵਾਬ ਦੋ ਵੱਖਰੇ ਨਿਰੀਖਣ ਹਨ।

SOCKS5 ਵਰਤੋਂਕਾਰ ਨਾਮ/ਪਾਸਵਰਡ ਪ੍ਰਮਾਣਿਕਤਾ ਲੋੜੀਂਦੀ ਪ੍ਰਾਕਸੀ ਲਈ, ਦਸਤਾਵੇਜ਼ੀ ਕਨਸਟ੍ਰਕਟਰ ਖੇਤਰਾਂ ਵਿੱਚ AuthType => 'userpass', Username ਅਤੇ Password ਸ਼ਾਮਲ ਹਨ।

ਸਫਲ ਬਲਾਕਿੰਗ ਕਨਸਟ੍ਰਕਟਰ SOCKS ਕਨੈਕਸ਼ਨ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਵਾਪਸ ਮਿਲੇ ਸਾਕੇਟ ਰਾਹੀਂ ਐਪਲੀਕੇਸ਼ਨ ਬੇਨਤੀ ਬਾਅਦ ਵਾਲਾ ਐਪਲੀਕੇਸ਼ਨ ਨਤੀਜਾ ਦਿੰਦੀ ਹੈ। HTTPS ਮੰਜ਼ਿਲ ਲਈ, ਉਸ ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਬੇਨਤੀ ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ SOCKS ਤੋਂ ਬਾਅਦ ਪ੍ਰਮਾਣਿਤ ਮੰਜ਼ਿਲ TLS ਜੋੜੋ। ਜਦੋਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਸ਼ਾਮਲ ਹੋਣ ਤਾਂ ਡੀਬੱਗ ਆਉਟਪੁੱਟ ਨੂੰ ਸੰਵੇਦਨਸ਼ੀਲ ਮੰਨੋ।

ਸੰਬੰਧਿਤ ਲੇਖ