1 package socks; 2 import java.net.*; 3 import java.io.*; 4 import java.util.Hashtable ; 5 import java.util.Enumeration ; 6 7 10 11 public class Socks4Proxy extends Proxy implements Cloneable { 12 13 String user; 15 16 19 27 public Socks4Proxy(Proxy p,String proxyHost,int proxyPort,String user) 28 throws UnknownHostException{ 29 super(p,proxyHost,proxyPort); 30 this.user = new String (user); 31 version = 4; 32 } 33 34 41 public Socks4Proxy(String proxyHost,int proxyPort,String user) 42 throws UnknownHostException{ 43 this(null,proxyHost,proxyPort,user); 44 } 45 46 53 public Socks4Proxy(Proxy p,InetAddress proxyIP,int proxyPort,String user){ 54 super(p,proxyIP,proxyPort); 55 this.user = new String (user); 56 version = 4; 57 } 58 59 65 public Socks4Proxy(InetAddress proxyIP,int proxyPort,String user){ 66 this(null,proxyIP,proxyPort,user); 67 } 68 69 72 76 public Object clone(){ 77 Socks4Proxy newProxy = new Socks4Proxy(proxyIP,proxyPort,user); 78 newProxy.directHosts = (InetRange)directHosts.clone(); 79 newProxy.chainProxy = chainProxy; 80 return newProxy; 81 } 82 83 84 87 88 91 protected Proxy copy(){ 92 Socks4Proxy copy = new Socks4Proxy(proxyIP,proxyPort,user); 93 copy.directHosts = this.directHosts; 94 copy.chainProxy = chainProxy; 95 return copy; 96 } 97 98 protected ProxyMessage formMessage(int cmd,InetAddress ip,int port){ 99 switch(cmd){ 100 case SOCKS_CMD_CONNECT: 101 cmd = Socks4Message.REQUEST_CONNECT; 102 break; 103 case SOCKS_CMD_BIND: 104 cmd = Socks4Message.REQUEST_BIND; 105 break; 106 default: 107 return null; 108 } 109 return new Socks4Message(cmd,ip,port,user); 110 } 111 protected ProxyMessage formMessage(int cmd,String host,int port) 112 throws UnknownHostException{ 113 return formMessage(cmd,InetAddress.getByName(host),port); 114 } 115 protected ProxyMessage formMessage(InputStream in) 116 throws SocksException, 117 IOException{ 118 return new Socks4Message(in,true); 119 } 120 121 } 122 | Popular Tags |