view src/alice/daemon/AcceptThread.java @ 30:b5a21baf0b07

implements RingTopology
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 17 Jan 2012 16:13:03 +0900
parents 98ab26e09a98
children 498d1d2524d3
line wrap: on
line source

package alice.daemon;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.log4j.Logger;

import alice.datasegment.DataSegment;

public class AcceptThread extends Thread {

	private ServerSocket ss;
	private Logger log = Logger.getLogger(AcceptThread.class);
	public int counter = 0;

	public AcceptThread(ServerSocket ss, String name) {
		super(name);
		this.ss = ss;
	}
	
	@Override
	public void run() {
		while (true) {
			try {
				Socket socket = ss.accept();
				log.info("Accept " + socket.getInetAddress().getHostName() + ":" + socket.getPort());
				Connection connection = new Connection(socket);
				String key = "accept" + counter;
				IncomingTcpConnection incoming =
						new IncomingTcpConnection(connection, DataSegment.get("local"), key);
				incoming.start();
				DataSegment.setAccept(key, incoming);
				new OutboundTcpConnection(connection).start();
				counter++;
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

}