Newer
Older
NWP / src / j2 / ThreadEchoClient.java
@Motoki Miura Motoki Miura on 22 Aug 2020 1 KB ThreadEcho is necessary?
package j2;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;
public class ThreadEchoClient {
	public static void main(String[] args) {
		// ソケットや入出力用のストリームの宣言
		Socket echoSocket = null;
		DataOutputStream os = null;
		BufferedReader is = null;
		BufferedReader inputbr = null;

		// ポート9999番を開く
		String host = "localhost";
		try {
			echoSocket = new Socket(host, 9999);
			os = new DataOutputStream(echoSocket.getOutputStream());
			is = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
			inputbr = new BufferedReader(new InputStreamReader(System.in));
		} catch (UnknownHostException e) {
			System.err.println("Don't know about host: "+host);
		} catch (IOException e) {
			System.err.println("Couldn't get I/O for the connection to: "+host);
		}

		// サーバーにメッセージを送る
		if (echoSocket != null && os != null && is != null) {
			try {
				// メッセージを送ります
				os.writeBytes("HELLO\n");

				// サーバーからのメッセージを受け取り画面に表示します
				String line;
				while ((line = is.readLine()) != null) {
					System.out.println("Server: " + line);
					if (line.equals("quit")) break;
					String s = inputbr.readLine();
					System.out.println(s);
					os.writeBytes(s+"\n");
				}

				// 開いたソケットなどをクローズ
				os.close();
				is.close();
				echoSocket.close();
			} catch (UnknownHostException e) {
				System.err.println("Trying to connect to unknown host: " + e);
			} catch (IOException e) {
				System.err.println("IOException: " + e);
			}
		}
	}
}