annotate src/main/java/alice/daemon/AliceDaemon.java @ 535:dd20acf579bd dispose

resolve connection bug
author Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
date Mon, 15 Jun 2015 18:22:27 +0900
parents aefbe41fcf12
children d2f7d02c4976
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.daemon;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3 import java.io.FileWriter;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4 import java.io.IOException;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5 import java.net.InetAddress;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6 import java.net.InetSocketAddress;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
7 import java.net.ServerSocket;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8 import java.nio.channels.ServerSocketChannel;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 import org.apache.log4j.Logger;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11 import org.apache.log4j.PatternLayout;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 import org.apache.log4j.WriterAppender;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14 public class AliceDaemon {
419
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
15
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
16 private Config conf;
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
17 private AcceptThread acceptThread;
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
18 private Logger log = Logger.getLogger(AliceDaemon.class);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
19
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
20 public AliceDaemon(Config conf) {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
21 this.conf = conf;
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
22 setLogger();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
23 }
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
24
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
25 private void setLogger() {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
26 Logger root = Logger.getRootLogger();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
27 if (conf.level != null)
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
28 root.setLevel(conf.level);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
29 if (conf.logFile == null)
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
30 return;
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
31 PatternLayout layout = new PatternLayout();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
32 layout.setConversionPattern("%d %-5p %c - %m [%t] (%F:%L)%n");
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
33 try {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
34 FileWriter writer = new FileWriter(conf.logFile);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
35 WriterAppender writerAppender = new WriterAppender(layout, writer);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
36 root.removeAllAppenders();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
37 root.addAppender(writerAppender);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
38 } catch (IOException e) {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
39 e.printStackTrace();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
40 }
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
41 log.info("configured");
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
42 }
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
43
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
44 public void listen() {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
45 try {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
46 ServerSocketChannel ssChannel = ServerSocketChannel.open();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
47 ServerSocket ss = ssChannel.socket();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
48 ss.setReuseAddress(true);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
49
535
dd20acf579bd resolve connection bug
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 419
diff changeset
50 // listen on any address ipv4/ipv6
dd20acf579bd resolve connection bug
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 419
diff changeset
51 InetSocketAddress a = new InetSocketAddress("::", conf.localPort);
dd20acf579bd resolve connection bug
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 419
diff changeset
52
dd20acf579bd resolve connection bug
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 419
diff changeset
53 //System.out.println("AliceDaemon.listen: bind to " + a);
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
54 ss.bind(a);
419
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
55 acceptThread = new AcceptThread(ss, "ACCEPT" + conf.localPort);
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
56 acceptThread.start();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
57 } catch (IOException e) {
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
58 e.printStackTrace();
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
59 }
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
60
aefbe41fcf12 change tab to space
sugi
parents: 345
diff changeset
61 }
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
62 }