@Override
	public FutureOperation connect(SocketAddress addr) {
		TCPChannel realChannel = getRealChannel();
		if(sslFactory == null)
			throw new RuntimeException(realChannel+"This socket is already connected");
		isConnecting = true;
		
		FutureOperationImpl newFuture = new FutureOperationImpl();
		SecProxyConnectOpCb connectCb = new SecProxyConnectOpCb(this, sslFactory, newFuture);
		
		FutureOperation lowerFuture = realChannel.connect(addr);
		lowerFuture.setListener(connectCb);
		
		return newFuture;
	}