345
|
1 package alice.daemon;
|
|
2
|
|
3 import java.io.IOException;
|
|
4 import java.net.ServerSocket;
|
|
5 import java.net.Socket;
|
|
6
|
|
7 import org.apache.log4j.Logger;
|
|
8
|
|
9 import alice.datasegment.DataSegment;
|
|
10
|
|
11 public class AcceptThread extends Thread {
|
|
12
|
|
13 private ServerSocket ss;
|
|
14 private Logger log = Logger.getLogger(AcceptThread.class);
|
|
15 public int counter = 0;
|
|
16
|
|
17 public AcceptThread(ServerSocket ss, String name) {
|
|
18 super(name);
|
|
19 this.ss = ss;
|
|
20 }
|
|
21
|
|
22 @Override
|
|
23 public void run() {
|
|
24 while (true) {
|
|
25 try {
|
|
26 Socket socket = ss.accept();
|
|
27 socket.setTcpNoDelay(true);
|
|
28 log.info("Accept " + socket.getInetAddress().getHostName() + ":" + socket.getPort());
|
|
29 Connection connection = new Connection(socket);
|
|
30 String key = "accept" + counter;
|
|
31 IncomingTcpConnection incoming =
|
|
32 new IncomingTcpConnection(connection, DataSegment.get("local"), key);
|
|
33 incoming.start();
|
|
34 DataSegment.setAccept(key, incoming);
|
|
35 new OutboundTcpConnection(connection).start();
|
|
36 counter++;
|
|
37 } catch (IOException e) {
|
|
38 e.printStackTrace();
|
|
39 }
|
|
40 }
|
|
41 }
|
|
42
|
|
43 }
|