Sample code for 30+ languages & platforms
Tcl

TCP Socket Connect through HTTP Proxy

See more Socket/SSL/TLS Examples

Demonstrates how to connect through an HTTP proxy server.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

set socket [new_CkSocket]

# To connect through an HTTP proxy, set the HttpProxyHostname
# and HttpProxyPort properties to the hostname (or IP address)
# and port of the HTTP proxy.  Typical port numbers used by
# HTTP proxy servers are 3128 and 8080.
CkSocket_put_HttpProxyHostname $socket "www.my-http-proxy.com"
CkSocket_put_HttpProxyPort $socket 3128

# Important:  Your HTTP proxy server must allow non-HTTP
# traffic to pass.  Otherwise this does not work.

# Connect (via the HTTP proxy) to port 5555 of 192.168.1.108.
# hostname may be a domain name or IP address.
set hostname "192.168.1.108"
set ssl 0
set maxWaitMillisec 20000
set success [CkSocket_Connect $socket $hostname 5555 $ssl $maxWaitMillisec]
if {$success != 1} then {
    puts [CkSocket_lastErrorText $socket]
    delete_CkSocket $socket
    exit
}

# Set maximum timeouts for reading an writing (in millisec)
CkSocket_put_MaxReadIdleMs $socket 10000
CkSocket_put_MaxSendIdleMs $socket 10000

# The ficticious server (in this example) is going to send a "Hello World!" 
# message.  Read it:
set receivedMsg [CkSocket_receiveString $socket]
if {[CkSocket_get_LastMethodSuccess $socket] != 1} then {
    puts [CkSocket_lastErrorText $socket]
    delete_CkSocket $socket
    exit
}

# Close the connection with the server
# Wait a max of 20 seconds (20000 millsec)
set success [CkSocket_Close $socket 20000]

puts "$receivedMsg"

delete_CkSocket $socket