view src/net/sourceforge/jsocks/Socks4Proxy.java @ 147:1350adb077b1
monitor key state tracking
author
Carl Byington <carl@five-ten-sg.com>
date
Sun, 22 Jun 2014 07:57:20 -0700 (2014-06-22)
parents
0ce5cc452d02
children
205ee2873330
line source
+ − package net.sourceforge.jsocks;
+ − import java.io.IOException;
+ − import java.io.InputStream;
+ − import java.net.InetAddress;
+ − import java.net.UnknownHostException;
+ −
+ − /**
+ − Proxy which describes SOCKS4 proxy.
+ − */
+ −
+ − public class Socks4Proxy extends Proxy implements Cloneable {
+ −
+ − //Data members
+ − String user;
+ −
+ − //Public Constructors
+ − //====================
+ −
+ − /**
+ − Creates the SOCKS4 proxy
+ − @param p Proxy to use to connect to this proxy, allows proxy chaining.
+ − @param proxyHost Address of the proxy server.
+ − @param proxyPort Port of the proxy server
+ − @param user User name to use for identification purposes.
+ − @throws UnknownHostException If proxyHost can't be resolved.
+ − */
+ − public Socks4Proxy(String proxyHost, int proxyPort, String user)
+ − throws UnknownHostException {
+ − super(proxyHost, proxyPort);
+ − this.user = new String(user);
+ − version = 4;
+ − }
+ −
+ − /**
+ − Creates the SOCKS4 proxy
+ − @param p Proxy to use to connect to this proxy, allows proxy chaining.
+ − @param proxyIP Address of the proxy server.
+ − @param proxyPort Port of the proxy server
+ − @param user User name to use for identification purposes.
+ − */
+ − public Socks4Proxy(Proxy p, InetAddress proxyIP, int proxyPort, String user) {
+ − super(p, proxyIP, proxyPort);
+ − this.user = new String(user);
+ − version = 4;
+ − }
+ −
+ − /**
+ − Creates the SOCKS4 proxy
+ − @param proxyIP Address of the proxy server.
+ − @param proxyPort Port of the proxy server
+ − @param user User name to use for identification purposes.
+ − */
+ − public Socks4Proxy(InetAddress proxyIP, int proxyPort, String user) {
+ − this(null, proxyIP, proxyPort, user);
+ − }
+ −
+ − //Public instance methods
+ − //========================
+ −
+ − /**
+ − * Creates a clone of this proxy. Changes made to the clone should not
+ − * affect this object.
+ − */
+ − public Object clone() {
+ − Socks4Proxy newProxy = new Socks4Proxy(proxyIP, proxyPort, user);
+ − newProxy.chainProxy = chainProxy;
+ − return newProxy;
+ − }
+ −
+ −
+ − //Public Static(Class) Methods
+ − //==============================
+ −
+ −
+ − //Protected Methods
+ − //=================
+ −
+ − protected Proxy copy() {
+ − Socks4Proxy copy = new Socks4Proxy(proxyIP, proxyPort, user);
+ − copy.chainProxy = chainProxy;
+ − return copy;
+ − }
+ −
+ − protected ProxyMessage formMessage(int cmd, InetAddress ip, int port) {
+ − switch (cmd) {
+ − case SOCKS_CMD_CONNECT:
+ − cmd = Socks4Message.REQUEST_CONNECT;
+ − break;
+ −
+ − case SOCKS_CMD_BIND:
+ − cmd = Socks4Message.REQUEST_BIND;
+ − break;
+ −
+ − default:
+ − return null;
+ − }
+ −
+ − return new Socks4Message(cmd, ip, port, user);
+ − }
+ − protected ProxyMessage formMessage(int cmd, String host, int port)
+ − throws UnknownHostException {
+ − return formMessage(cmd, InetAddress.getByName(host), port);
+ − }
+ − protected ProxyMessage formMessage(InputStream in)
+ − throws SocksException,
+ − IOException {
+ − return new Socks4Message(in, true);
+ − }
+ −
+ − }