Newer
Older
ServerTester / src / main / java / info / istlab / ServerTester / EchoServer.java
package info.istlab.ServerTester;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;

public class EchoServer extends Server {

	public EchoServer() {
		this(10007);
	}

	public EchoServer(int port) {
		this(port, "127.0.0.1");
	}

	public EchoServer(String bindaddress) {
		this(10007, bindaddress);
	}

	public EchoServer(int port, String bindaddress) {
		super(port, bindaddress);
		start();
	}

	public void handleRequest() {
		Socket clientSocket = null;
		BufferedReader br;
		PrintStream os;
		String line;
		// サーバ側の処理の繰り返し
		while (thread != null) {
			try {
				clientSocket = serverSocket.accept(); // 接続がくるまで、ここで待つ
				System.out.println("accept");
				br = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
				os = new PrintStream(clientSocket.getOutputStream());
				// クライアントからのメッセージを待ち、受け取ったメッセージをそのまま返す
				while ((line = br.readLine()) != null) {
					System.out.println("(Server received) " + line);
					os.println(line);
				}
			} catch (IOException e) {
				System.out.println(e);
				System.out.println("disconnected " + clientSocket.toString());
			}
		}
	}
	public static void main(String[] args) {
		invokeMain(args, "EchoServer");
	}
}