diff --git a/src/j2/ThreadEchoServer.java b/src/j2/ThreadEchoServer.java index 2511318..28cdbee 100644 --- a/src/j2/ThreadEchoServer.java +++ b/src/j2/ThreadEchoServer.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; +import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; @@ -47,12 +48,24 @@ ServerSocket echoServer = null; Socket clientSocket = null; - // ポート9999番を開く - try { - echoServer = new ServerSocket(9999); - } catch (IOException e) { - System.out.println(e); + if (args.length < 2) { + args = new String[2]; + args[0] = "127.0.0.1"; + // ポート9999番を開く + args[1] = "9999"; } + String bindaddress = args[0]; + int port = Integer.parseInt(args[1]); + try { + echoServer = new ServerSocket(); + echoServer.bind(new InetSocketAddress(bindaddress, port)); // サーバソケットにバインドする=ポートでの待ち受け開始 + } catch (IOException e) { + System.err.println(e); + System.err.println("バインド失敗。ポート番号 "+port+" (Bind-address: "+bindaddress+" 向け) がすでにつかわれているようです"); + System.err.println("ポート番号またはバインドアドレスを変更してください。"); + System.exit(1); + } + System.out.println("ThreadEchoServer ["+bindaddress+":"+port+"] started."); while (true) { // クライアントからの要求を受けるソケットを開く diff --git a/src/j2/ThreadTimeServer.java b/src/j2/ThreadTimeServer.java index d9a5b4a..73899c2 100644 --- a/src/j2/ThreadTimeServer.java +++ b/src/j2/ThreadTimeServer.java @@ -66,14 +66,24 @@ public static void main(String args[]) { ServerSocket svsock = null;// サーバ用ソケット Socket sock;// ソケットの読み書き用オブジェクト + + if (args.length < 2) { + args = new String[2]; + // バインドするアドレスとポートを指定 + args[0] = "127.0.0.1"; + // ポート9999番を開く + args[1] = "5555"; + } + String bindaddress = args[0]; + int port = Integer.parseInt(args[1]); + try { // サーバソケットの作成 svsock = new ServerSocket(); - // バインドするアドレスとポートを指定 - svsock.bind(new InetSocketAddress("0.0.0.0", 5555)); // 別のホストからの接続も受け付ける場合 - // svsock.bind(new InetSocketAddress("127.0.0.1", 5555)) ; //ローカルホストからのみ受け付ける場合 + svsock.bind(new InetSocketAddress(bindaddress, port)); - System.out.println("(TimeServer) 停止するには CTRL+C をおしてください"); + System.out.println("(ThreadTimeServer) at ["+bindaddress+":"+port+"] "); + System.out.println(" ThreadTimeServerを停止するには CTRL+C をおしてください"); // サーバ側の処理の繰り返し while (true) { diff --git a/src/j2/TimeServer.java b/src/j2/TimeServer.java index a63ae3f..7f16bc7 100644 --- a/src/j2/TimeServer.java +++ b/src/j2/TimeServer.java @@ -28,11 +28,11 @@ svsock = new ServerSocket(); // バインドするアドレスとポートを指定 int port = 5555; - String bindadress = "127.0.0.1"; // ローカルホストからのみ受け付ける場合 + String bindaddress = "127.0.0.1"; // ローカルホストからのみ受け付ける場合 //別のホストからの接続も受け付ける場合 "0.0.0.0" - svsock.bind(new InetSocketAddress(bindadress, port)); // サーバソケットにバインドする=ポートでの待ち受け開始 + svsock.bind(new InetSocketAddress(bindaddress, port)); // サーバソケットにバインドする=ポートでの待ち受け開始 - System.out.println("(TimeServer) at ["+bindadress+":"+port+"] \n停止するには CTRL+C をおしてください"); + System.out.println("(TimeServer) at ["+bindaddress+":"+port+"] \n停止するには CTRL+C をおしてください"); // サーバ側の処理の繰り返し while (true) { diff --git a/src/run2-3.sh b/src/run2-3.sh index fa93957..c21c0d4 100755 --- a/src/run2-3.sh +++ b/src/run2-3.sh @@ -11,14 +11,14 @@ sleep 2 echo "Now, open other terminal, and run TimeClient by typing" sleep 2 -echo " vvvvvvvvvvvvvvvvvv" -echo ">>>> $ java j2.TimeClient"; -echo " ^^^^^^^^^^^^^^^^^^"; +echo "" +echo ">>>> $ java j2.TimeClient localhost (portnum)"; +echo ""; echo "" sleep 2 echo "それでは、ThreadTimeServer を起動します。" -echo '>' java j2.ThreadTimeServer -java j2.ThreadTimeServer +echo '>' java j2.ThreadTimeServer localhost 5555 +java j2.ThreadTimeServer localhost 5555 diff --git a/src/run2-4.sh b/src/run2-4.sh index db2e5ef..0be336b 100755 --- a/src/run2-4.sh +++ b/src/run2-4.sh @@ -9,14 +9,14 @@ sleep 2 echo "起動したら、別ターミナルでEchoClientを起動し接続してください。" sleep 2 -echo ">>>> $ java j2.EchoClient"; -echo " ^^^^^^^^^^^^^^^"; +echo ">>>> $ java j2.EchoClient (host) (port)"; +echo ""; sleep 2 echo "それでは、ThreadEchoServerを、起動します。" sleep 2 -echo '>' java j2.ThreadEchoServer -java j2.ThreadEchoServer +echo '>' java j2.ThreadEchoServer localhost 9999 +java j2.ThreadEchoServer localhost 9999 #echo "type return to exit" #read input_str