@Override public synchronized void close() throws IOException { proxy.getProxySocket().close(); proxy.setProxySocket(null); }
@Override public synchronized void close() throws IOException { proxy.getProxySocket().close(); proxy.setProxySocket(null); }
/** * Creates a SocksSocket instance with a {@link SocksProxy} and a * * @param proxy SOCKS proxy. * @param proxySocket a unconnected socket. it will connect SOCKS server later. */ public SocksSocket(SocksProxy proxy, Socket proxySocket) { checkNotNull(proxy, "Argument [proxy] may not be null"); checkNotNull(proxySocket, "Argument [proxySocket] may not be null"); checkArgument(!proxySocket.isConnected(), "Proxy socket should be unconnected"); this.proxySocket = proxySocket; this.proxy = proxy.copy(); this.proxy.setProxySocket(proxySocket); }
/** * Creates a SocksSocket instance with a {@link SocksProxy} and a * * @param proxy SOCKS proxy. * @param proxySocket a unconnected socket. it will connect SOCKS server later. */ public SocksSocket(SocksProxy proxy, Socket proxySocket) { checkNotNull(proxy, "Argument [proxy] may not be null"); checkNotNull(proxySocket, "Argument [proxySocket] may not be null"); checkArgument(!proxySocket.isConnected(), "Proxy socket should be unconnected"); this.proxySocket = proxySocket; this.proxy = proxy.copy(); this.proxy.setProxySocket(proxySocket); }
/** * Initialize proxy chain. * * @throws SocketException If a SOCKS protocol error occurred. * @throws IOException If an I/O error occurred. */ private void initProxyChain() throws SocketException, IOException { List<SocksProxy> proxyChain = new ArrayList<SocksProxy>(); SocksProxy temp = proxy; while (temp.getChainProxy() != null) { temp.getChainProxy().setProxySocket(proxySocket); proxyChain.add(temp.getChainProxy()); temp = temp.getChainProxy(); } logger.debug("Proxy chain has:{} proxy", proxyChain.size()); if (proxyChain.size() > 0) { SocksProxy pre = proxy; for (int i = 0; i < proxyChain.size(); i++) { SocksProxy chain = proxyChain.get(i); pre.requestConnect(chain.getInetAddress(), chain.getPort()); proxy.getChainProxy().buildConnection(); pre = chain; } } }
/** * Create a socket and connect SOCKS Server. * * @param proxy Socks proxy. * @param remoteServerHost Remote sever host. * @param remoteServerPort Remote server port. * @throws SocksException If any errors about SOCKS protocol occurred. * @throws IOException If any IO errors occurred. */ public SocksSocket(SocksProxy proxy, String remoteServerHost, int remoteServerPort) throws SocksException, IOException { this.proxy = checkNotNull(proxy, "Argument [proxy] may not be null").copy(); this.proxy.setProxySocket(proxySocket); this.remoteServerHost = checkNotNull(remoteServerHost, "Argument [remoteServerHost] may not be null"); this.remoteServerPort = remoteServerPort; this.proxy.buildConnection(); proxySocket = this.proxy.getProxySocket(); initProxyChain(); this.proxy.requestConnect(remoteServerHost, remoteServerPort); }
/** * Create a socket and connect SOCKS Server. * * @param proxy Socks proxy. * @param remoteServerHost Remote sever host. * @param remoteServerPort Remote server port. * @throws SocksException If any errors about SOCKS protocol occurred. * @throws IOException If any IO errors occurred. */ public SocksSocket(SocksProxy proxy, String remoteServerHost, int remoteServerPort) throws SocksException, IOException { this.proxy = checkNotNull(proxy, "Argument [proxy] may not be null").copy(); this.proxy.setProxySocket(proxySocket); this.remoteServerHost = checkNotNull(remoteServerHost, "Argument [remoteServerHost] may not be null"); this.remoteServerPort = remoteServerPort; this.proxy.buildConnection(); proxySocket = this.proxy.getProxySocket(); initProxyChain(); this.proxy.requestConnect(remoteServerHost, remoteServerPort); }
/** * Initialize proxy chain. * * @throws SocketException If a SOCKS protocol error occurred. * @throws IOException If an I/O error occurred. */ private void initProxyChain() throws SocketException, IOException { List<SocksProxy> proxyChain = new ArrayList<SocksProxy>(); SocksProxy temp = proxy; while (temp.getChainProxy() != null) { temp.getChainProxy().setProxySocket(proxySocket); proxyChain.add(temp.getChainProxy()); temp = temp.getChainProxy(); } logger.debug("Proxy chain has:{} proxy", proxyChain.size()); if (proxyChain.size() > 0) { SocksProxy pre = proxy; for (int i = 0; i < proxyChain.size(); i++) { SocksProxy chain = proxyChain.get(i); pre.requestConnect(chain.getInetAddress(), chain.getPort()); proxy.getChainProxy().buildConnection(); pre = chain; } } }