private void doSend(Message message) {
		String dest = message.getDest();
		Socket sendSock = null;
		for(SocketInfo inf : sockets.keySet()) {
			if(inf.getName().equals(dest)) {
				sendSock = sockets.get(inf);
				break;
			}
		}
		if(sendSock == null) {
			try {
				SocketInfo inf = config.getConfigSockInfo(dest);
				if(inf == null) {
					System.out.println("Cannot find config for " + dest);
					return ;
				}
				sendSock = new Socket(inf.getIp(), inf.getPort());
			} catch(ConnectException e2) { 
				System.out.println("Connection refused to " + dest);
				return ;
			}catch (IOException e) {
				//  Auto-generated catch block
				e.printStackTrace();
				return ;
			}
			sockets.put(config.getConfigSockInfo(dest), sendSock);
			try {
				outputStreamMap.put(dest, new ObjectOutputStream(sendSock.getOutputStream()));
			} catch (IOException e) {
				//  Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		ObjectOutputStream out;
		try {
			out = outputStreamMap.get(dest);
			
			out.writeObject(message);
			out.flush();
			
		} catch (SocketException e1) {
			System.out.println("Peer " + dest + " is offline. Cannot send");
			
		} catch (IOException e) {
			//  Auto-generated catch block
			e.printStackTrace();
		}
	}