public boolean sendRequest(RequestCommandCollection rcList, int timeout) {
        Map<Long, BasePacket> map       = rcList.getRequestCommandMap();
        MultiReceiveListener               listener  = new MultiReceiveListener(rcList.getResultList());
        int                                sendCount = 0;

        for (Long addr : map.keySet()) {
            
            TairClient client = null;
            
            try {
            	client = clientFactory.get(TairUtil.idToAddress(addr), timeout, packetStreamer);
			} catch (TairClientException e) {				
			}

            if (client == null) {
                continue;
            }

            
           client.invokeAsync(map.get(addr), timeout, listener);
           sendCount ++;
        }

        listener.await(sendCount, timeout);

        return (sendCount == listener.doneCount);
    }