public static ComplexSocket CreateForControl(FtpClient ftpClient)
        {
            // TODO this method should be moved to a factory
            // TODO add check for ftpClient.Port 0 - 0xffff

            var endPoint = new DnsEndPoint(ftpClient.Server,
                                           ftpClient.Port);

            var complexSocket = new ComplexSocket(endPoint,
                                                  true,
                                                  ftpClient.SocketReceiveBufferSize,
                                                  ftpClient.SocketSendBufferSize,
                                                  ftpClient.SocketClientAccessPolicyProtocol);

            return complexSocket;
        }
        public static ComplexSocket CreateForTransfer(FtpClient ftpClient,
                                                      IPEndPoint ipEndPoint)
        {
            // TODO this method should be moved to a factory
            // TODO add check for ftpClient.Port 0 - 0xffff

            var complexSocket = new ComplexSocket(ipEndPoint,
                                                  false,
                                                  ftpClient.SocketReceiveBufferSize,
                                                  ftpClient.SocketSendBufferSize,
                                                  ftpClient.SocketClientAccessPolicyProtocol);

            return complexSocket;
        }