view src/alice/test/codesegment/TestRemoteAlice.java @ 16:433e601a8e28

network bug fix
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Sun, 15 Jan 2012 12:17:30 +0900
parents 45e98e74db96
children bb075e103cd3
line wrap: on
line source

package alice.test.codesegment;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;

import alice.codesegment.CodeSegment;
import alice.daemon.AliceDaemon;
import alice.daemon.Config;
import alice.daemon.Connection;
import alice.datasegment.DataSegment;
import alice.datasegment.RemoteDataSegmentManager;

public class TestRemoteAlice {

	public static void main(String[] args) {
		Config conf = new Config(args);
		System.out.println(conf.port);
		System.out.println(conf.hostname);
		System.out.println(conf.connectPort);
		System.out.println(conf.key);

		final AliceDaemon daemon = new AliceDaemon(conf);
		new Thread() {

			@Override
			public void run() {
				// TODO Auto-generated method stub
				daemon.listen();
			}
			
		}.start();
		
		boolean connect = true;
		do {
			try {
				SocketChannel sc = SocketChannel.open(new InetSocketAddress(conf.hostname, conf.connectPort));
				Connection connection = new Connection(sc.socket());
				RemoteDataSegmentManager manager = new RemoteDataSegmentManager(connection);
				DataSegment.regist(conf.key, manager);
				connect = false;
			} catch (IOException e) {
				try {
					Thread.sleep(500);
				} catch (InterruptedException e1) {
					e1.printStackTrace();
				}
			}
		} while (connect);
		
		CodeSegment cs = new RemoteStartCodeSegment();
		cs.ids.execute();
	}

}