1 import java
.io
.IOException
;
2 import java
.net
.InetAddress
;
3 import java
.net
.ServerSocket
;
4 import java
.net
.Socket
;
5 import java
.net
.UnknownHostException
;
8 * A simple TCP server. Listens for connections, and for each incoming connection,
9 * it creates a 'handler' (either echo handler or default handler) which controls
12 public class TCPServer
implements Runnable
{
13 public ServerSocket server
;
15 private String handler
;
17 public TCPServer(int port
, InetAddress address
) {
19 server
= new ServerSocket(port
, 0, address
);
20 server
.setReuseAddress(true);
21 System
.out
.println("Listening on:\n"
22 + server
.getInetAddress().toString() + "\nport: "
23 + server
.getLocalPort());
24 } catch (IOException e
) {
29 public TCPServer(int port
) throws UnknownHostException
{
30 this(port
,InetAddress
.getLocalHost());
33 public void setHandlerType(String handlerClass
) {
34 this.handler
= handlerClass
;
37 private void startHandler(Socket socket
) {
38 System
.out
.println("Starting handler '"+ ((handler
!=null) ? handler
: "default") + "'");
39 if("echo".equalsIgnoreCase(handler
)) {
40 new EchoHandler(socket
);
42 new DefaultHandler(socket
);
46 public void handleConnections() {
47 Thread thread
= new Thread(this);
53 System
.out
.println("Waiting for client messages...");
55 // accept all requests for connections
58 socket
= server
.accept();
60 } catch (IOException e
) {
61 //e.printStackTrace();
62 System
.err
.println("Closed socket");