@Override
	public void run() {
		this.mapWritable = new MapList<String, Writable>();
		MapList<String, ParseNode> msp = this.innerNode.getNext();
		SocketSender socketSender;
		for ( String ss : msp.keySet() ) {
			Vector<ParseNode> vpn = msp.get(ss);
			for ( ParseNode pn : vpn ) {
				socketSender = new SocketSender(pn.getSocketPort());
				Thread t2 = new Thread(socketSender);
				t2.start();
				mapSender.addPair(ss, socketSender);
				mapWritable.addPair(ss, socketSender.getWritable());
			}
		}
		Writable lw = this.listener.getWritable();
		String sr, sd;
		Vector<Writable> vw;
		while ( !this.listener.isEnd() ) {
			sr = lw.read();
			if ( sr != null ) {
				sr = this.innerNode.execute(sr);
				// System.out.println(sr);
				sd = this.innerNode.distribute(sr);
				// System.out.println(sd);
				vw = this.mapWritable.get(sd);
				if ( vw != null ) {
					for ( Writable writable : vw ) {
						writable.write( sr );
						// System.out.println(sr);
					}
				}
			}
			else {
				try {
					Thread.sleep(50);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}