I am trying to write Java applications that work with proxy-based firewalls. Java provides properties for dealing with FTP and HTTP proxies - is there a way to use a proxy with other Internet protocols?
The java.net.PlainSocketImpl class has built-in support for SOCKS v4 proxies. SOCKS will allow you to tunnel any protocol you want, although version 4 only supports TCP-based protocols.
By setting a few Java system properties, you may open a socket through a SOCKS proxy transparently from your application. These properties are socksProxyHost, which should be set to the fully-qualified host name where you are running the SOCKS proxy, and socksProxyPort, which should be set to the port on which the SOCKS proxy is listening. socksProxyPort defaults to port 1080, which is the customary port for a SOCKS proxy server.