diff --git a/src/main/java/fucksocks/client/GenericSocksCmdSender.java b/src/main/java/fucksocks/client/GenericSocksCmdSender.java
deleted file mode 100644
index b52153c..0000000
--- a/src/main/java/fucksocks/client/GenericSocksCmdSender.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright 2015-2025 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package fucksocks.client;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketAddress;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import fucksocks.common.SocksCommand;
-import fucksocks.common.SocksException;
-import fucksocks.utils.LogMessage;
-import fucksocks.utils.LogMessage.MsgType;
-import fucksocks.utils.UnsignedByte;
-
-/**
- * The class GenericSocksCmdSender
implements {@link SocksCommandSender}.
- *
- * @author Youchao Feng
- * @date Mar 19, 2015 2:45:23 PM
- * @version 1.0
- */
-public class GenericSocksCmdSender implements SocksCommandSender{
-
- protected static final Logger logger = LoggerFactory.getLogger(GenericSocksMethodRequestor.class);
-
-
- /**
- * length of IPv4 address.
- */
- protected static final int LENGTH_OF_IPV4 = 4;
-
- /**
- * length of IPv6 address.
- */
- protected static final int LENGTH_OF_IPV6 = 16;
-
- @Override
- public CommandReplyMesasge send(Socket socket, SocksCommand
- command, InetAddress address,
- int port, int version) throws SocksException, IOException {
- return send(socket, command, new InetSocketAddress(address, port), version);
- }
-
- @Override
- public CommandReplyMesasge send(Socket socket, SocksCommand command,
- SocketAddress socketAddress, int version) throws SocksException,
- IOException {
- if (!(socketAddress instanceof InetSocketAddress)){
- throw new IllegalArgumentException("Unsupported address type");
- }
-
- final InputStream inputStream = socket.getInputStream();
- final OutputStream outputStream = socket.getOutputStream();
- final InetSocketAddress address = (InetSocketAddress)socketAddress;
- final byte[] bytesOfAddress = address.getAddress().getAddress();
- final int ADDRESS_LENGTH = bytesOfAddress.length;
- final int port = address.getPort();
- byte addressType = -1;
- byte[] bufferSent = null;
-
- if(ADDRESS_LENGTH == LENGTH_OF_IPV4){
- addressType = ATYPE_IPV4;
- bufferSent = new byte[6 + LENGTH_OF_IPV4];
- }
- else if(ADDRESS_LENGTH == LENGTH_OF_IPV6){
- addressType = ATYPE_IPV6;
- bufferSent = new byte[6 + LENGTH_OF_IPV6];
- }else{
- throw new SocksException("Address error");//TODO
- }
-
- bufferSent[0] = (byte) version;
- bufferSent[1] = (byte) command.getValue();
- bufferSent[2] = RESERVED;
- bufferSent[3] = addressType;
- System.arraycopy(bytesOfAddress, 0, bufferSent, 4, ADDRESS_LENGTH);//copy address bytes
- bufferSent[4+ADDRESS_LENGTH] = (byte) ((port&0xff00)>>8);
- bufferSent[5+ADDRESS_LENGTH] = (byte)(port&0xff);
-
- outputStream.write(bufferSent);
- outputStream.flush();
- logger.debug("{}", LogMessage.create(bufferSent, MsgType.SEND));
-
- return checkServerReply(inputStream);
- }
-
- @Override
- public CommandReplyMesasge send(Socket socket, SocksCommand command, String host, int port,
- int version) throws SocksException, IOException {
- final InputStream inputStream = socket.getInputStream();
- final OutputStream outputStream = socket.getOutputStream();
- final int lengthOfHost = host.getBytes().length;
- final byte[] bufferSent = new byte[7+lengthOfHost];
-
- bufferSent[0] = (byte) version;
- bufferSent[1] = (byte) command.getValue();
- bufferSent[2] = RESERVED;
- bufferSent[3] = ATYPE_DOMAINNAME;
- bufferSent[4] = (byte) lengthOfHost;
- byte[] bytesOfHost = host.getBytes();
- System.arraycopy(bytesOfHost, 0, bufferSent, 5, lengthOfHost);//copy host bytes.
- bufferSent[5+host.length()] = (byte) ((port&0xff00)>>8);
- bufferSent[6+host.length()] = (byte)(port&0xff);
-
- outputStream.write(bufferSent);
- outputStream.flush();
- logger.debug("{}", LogMessage.create(bufferSent, MsgType.SEND));
-
- return checkServerReply(inputStream);
- }
-
- private CommandReplyMesasge checkServerReply(InputStream inputStream)
- throws SocksException, IOException{
- byte serverReply = -1;
- final byte[] bufferReceived = new byte[1024];
- int bufferReceivedSize = inputStream.read(bufferReceived);
-
- logger.debug("{}", LogMessage.create(bufferReceived,
- bufferReceivedSize, MsgType.RECEIVE));
-
- byte[] addressBytes = null;
- byte[] portBytes = new byte[2];
-
- if(bufferReceived[3] == Socks5.ATYPE_IPV4){
- addressBytes = new byte[4];
- for(int i=0;i < addressBytes.length;i++){
- addressBytes[i] = bufferReceived[4+i];
- }
- int a = UnsignedByte.toInt(addressBytes[0]);
- int b = UnsignedByte.toInt(addressBytes[1]);
- int c = UnsignedByte.toInt(addressBytes[2]);
- int d = UnsignedByte.toInt(addressBytes[3]);
- portBytes[0] = bufferReceived[8];
- portBytes[1] = bufferReceived[9];
-
- logger.debug("Server replied:Address as IPv4:{}.{}.{}.{}, port:{}", a, b, c, d,
- (UnsignedByte.toInt(portBytes[0]) << 8)
- | (UnsignedByte.toInt(portBytes[1]) ));
-
- }
- else if(bufferReceived[3] == Socks5.ATYPE_DOMAINNAME){
- int size = bufferReceived[4];
- size = size & 0xFF;
- addressBytes = new byte[size];
- for(int i = 0; i < size ; i++){
- addressBytes[i] = bufferReceived[4+i];
- }
- portBytes[0] = bufferReceived[4+size];
- portBytes[1] = bufferReceived[5+size];
- logger.debug("Server replied:Address as host:{}, port:{}", new String(addressBytes),
- (UnsignedByte.toInt(portBytes[0]) << 8)
- | (UnsignedByte.toInt(portBytes[1]) ));
- }
-
- else if(bufferReceived[3] == Socks5.ATYPE_IPV6){
- int size = bufferReceived[4];
- size = size & 0xFF;
- addressBytes = new byte[16];
- for(int i = 0; i < addressBytes.length ; i++){
- addressBytes[i] = bufferReceived[4+i];
- }
- logger.debug("Server replied:Address as IPv6:{}", new String(addressBytes));
- }
-
-
- serverReply = bufferReceived[1];
-
- if(serverReply != REP_SUCCEEDED){
- throw SocksException.serverReplyException(serverReply);
- }
-
- logger.info("Connected SOCKS5 proxy successfully");
-
- byte[] receivedBytes = new byte[bufferReceivedSize];
- System.arraycopy(bufferReceived, 0, receivedBytes, 0, bufferReceivedSize);
- return new CommandReplyMesasge(receivedBytes);
- }
-
-}
diff --git a/src/main/java/fucksocks/client/GenericSocksCommandSender.java b/src/main/java/fucksocks/client/GenericSocksCommandSender.java
index d3e71d8..e285600 100644
--- a/src/main/java/fucksocks/client/GenericSocksCommandSender.java
+++ b/src/main/java/fucksocks/client/GenericSocksCommandSender.java
@@ -34,7 +34,7 @@
import fucksocks.utils.UnsignedByte;
/**
- * The class GenericSocksCmdSender
implements {@link SocksCommandSender}.
+ * The class GenericSocksCommandSender
implements {@link SocksCommandSender}.
*
* @author Youchao Feng
* @date Mar 19, 2015 2:45:23 PM