diff --git a/bin/j4/Clock.class b/bin/j4/Clock.class deleted file mode 100644 index 2d5c5ec..0000000 --- a/bin/j4/Clock.class +++ /dev/null Binary files differ diff --git a/bin/j4/ClockClient.class b/bin/j4/ClockClient.class deleted file mode 100644 index c0a8c9d..0000000 --- a/bin/j4/ClockClient.class +++ /dev/null Binary files differ diff --git a/bin/j4/ClockImpl.class b/bin/j4/ClockImpl.class deleted file mode 100644 index 9deb319..0000000 --- a/bin/j4/ClockImpl.class +++ /dev/null Binary files differ diff --git a/bin/j4/ClockServer.class b/bin/j4/ClockServer.class deleted file mode 100644 index d535c2a..0000000 --- a/bin/j4/ClockServer.class +++ /dev/null Binary files differ diff --git a/bin/j5/DPiClient.class b/bin/j5/DPiClient.class deleted file mode 100644 index 94fb11a..0000000 --- a/bin/j5/DPiClient.class +++ /dev/null Binary files differ diff --git a/bin/j5/Pi.class b/bin/j5/Pi.class deleted file mode 100644 index a3f7ad3..0000000 --- a/bin/j5/Pi.class +++ /dev/null Binary files differ diff --git a/bin/j5/PiClient.class b/bin/j5/PiClient.class deleted file mode 100644 index 61f6b98..0000000 --- a/bin/j5/PiClient.class +++ /dev/null Binary files differ diff --git a/bin/j5/PiImpl.class b/bin/j5/PiImpl.class deleted file mode 100644 index 450eafb..0000000 --- a/bin/j5/PiImpl.class +++ /dev/null Binary files differ diff --git a/bin/j5/PiServer.class b/bin/j5/PiServer.class deleted file mode 100644 index 6147b0f..0000000 --- a/bin/j5/PiServer.class +++ /dev/null Binary files differ diff --git a/bin/j5/Result.class b/bin/j5/Result.class deleted file mode 100644 index 04ec30a..0000000 --- a/bin/j5/Result.class +++ /dev/null Binary files differ diff --git a/bin/j5/Sample.class b/bin/j5/Sample.class deleted file mode 100644 index f7b926c..0000000 --- a/bin/j5/Sample.class +++ /dev/null Binary files differ diff --git a/bin/j5/launchPiServer.class b/bin/j5/launchPiServer.class deleted file mode 100644 index fed707e..0000000 --- a/bin/j5/launchPiServer.class +++ /dev/null Binary files differ diff --git a/bin/j6/Chat.class b/bin/j6/Chat.class deleted file mode 100644 index 0b68351..0000000 --- a/bin/j6/Chat.class +++ /dev/null Binary files differ diff --git a/bin/j6/ChatServer.class b/bin/j6/ChatServer.class deleted file mode 100644 index 1e47b8a..0000000 --- a/bin/j6/ChatServer.class +++ /dev/null Binary files differ diff --git a/bin/j6/ListenPacket.class b/bin/j6/ListenPacket.class deleted file mode 100644 index d58a01d..0000000 --- a/bin/j6/ListenPacket.class +++ /dev/null Binary files differ diff --git a/bin/j6/StreamConnector.class b/bin/j6/StreamConnector.class deleted file mode 100644 index 7eac924..0000000 --- a/bin/j6/StreamConnector.class +++ /dev/null Binary files differ diff --git a/bin/j6/T1.class b/bin/j6/T1.class deleted file mode 100644 index 1a63ab8..0000000 --- a/bin/j6/T1.class +++ /dev/null Binary files differ diff --git a/bin/j6/clientProc.class b/bin/j6/clientProc.class deleted file mode 100644 index 97a35b0..0000000 --- a/bin/j6/clientProc.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$1.class b/bin/j7/SeaGameClient$1.class deleted file mode 100644 index 67ee938..0000000 --- a/bin/j7/SeaGameClient$1.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$2.class b/bin/j7/SeaGameClient$2.class deleted file mode 100644 index 18bb686..0000000 --- a/bin/j7/SeaGameClient$2.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$3.class b/bin/j7/SeaGameClient$3.class deleted file mode 100644 index 708e7c1..0000000 --- a/bin/j7/SeaGameClient$3.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$4.class b/bin/j7/SeaGameClient$4.class deleted file mode 100644 index 6d3704e..0000000 --- a/bin/j7/SeaGameClient$4.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$5.class b/bin/j7/SeaGameClient$5.class deleted file mode 100644 index 54f6261..0000000 --- a/bin/j7/SeaGameClient$5.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$6.class b/bin/j7/SeaGameClient$6.class deleted file mode 100644 index e28fe96..0000000 --- a/bin/j7/SeaGameClient$6.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient$7.class b/bin/j7/SeaGameClient$7.class deleted file mode 100644 index cf55137..0000000 --- a/bin/j7/SeaGameClient$7.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameClient.class b/bin/j7/SeaGameClient.class deleted file mode 100644 index 29f486a..0000000 --- a/bin/j7/SeaGameClient.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameServer$1.class b/bin/j7/SeaGameServer$1.class deleted file mode 100644 index d85bdd6..0000000 --- a/bin/j7/SeaGameServer$1.class +++ /dev/null Binary files differ diff --git a/bin/j7/SeaGameServer.class b/bin/j7/SeaGameServer.class deleted file mode 100644 index a473b3a..0000000 --- a/bin/j7/SeaGameServer.class +++ /dev/null Binary files differ diff --git a/bin/j7/Ship.class b/bin/j7/Ship.class deleted file mode 100644 index 2262ab1..0000000 --- a/bin/j7/Ship.class +++ /dev/null Binary files differ diff --git a/bin/j7/clientProc.class b/bin/j7/clientProc.class deleted file mode 100644 index b6142a9..0000000 --- a/bin/j7/clientProc.class +++ /dev/null Binary files differ diff --git a/src/j1/TestThread.java b/src/j1/TestThread.java index f284039..a9e988a 100644 --- a/src/j1/TestThread.java +++ b/src/j1/TestThread.java @@ -3,29 +3,29 @@ //----------------------------------------------------------- public class TestThread{ public static void main(String[] args){ - System.out.print("TestThread"); + System.out.print("TestThread started."); - myThread mt1 = new myThread("1 ", 1300); - myThread mt2 = new myThread("2 ", 2900); + MyThread mt1 = new MyThread("1 ", 1300); + MyThread mt2 = new MyThread("2 ", 2900); mt1.start(); mt2.start(); } }; //----------------------------------------------------------- -class myThread extends Thread { - String s; - int t; +class MyThread extends Thread { + String str; + int msec; - myThread(String s, int t) { - this.s = s; - this.t = t; + MyThread(String txt, int ms) { + this.str = txt; + this.msec = ms; } public void run() { while(true) { try { - System.out.print(this.s); - sleep(t); // tミリ秒動作休止 + System.out.print(this.str); + sleep(msec); // tミリ秒動作休止 } catch(InterruptedException e) { break; } diff --git a/src/j2/ThreadEchoServer.java b/src/j2/ThreadEchoServer.java new file mode 100644 index 0000000..c13cff6 --- /dev/null +++ b/src/j2/ThreadEchoServer.java @@ -0,0 +1,62 @@ +package j2; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintStream; +import java.net.ServerSocket; +import java.net.Socket; + +public class ThreadEchoServer implements Runnable { + Socket sock; + Thread thread; + ThreadEchoServer(Socket sc){ + sock = sc; + //start running + thread = new Thread(this); + thread.start(); // スレッドが run()を背負って走る + } + + @Override + public void run() { + String line = null; + BufferedReader br = null; + PrintStream os = null; + + System.out.println("accept"); + try { + br = new BufferedReader(new InputStreamReader(sock.getInputStream())); + os = new PrintStream(sock.getOutputStream()); + // クライアントからのメッセージを待ち、受け取ったメッセージをそのまま返す + while ((line = br.readLine()) != null) { + System.out.println("(Server received) " +line); + os.println(line); + } + } catch (IOException e) { +// os.close(); + System.out.println(e); + } + } + public static void main(String args[]) { + // ソケットの宣言 + ServerSocket echoServer = null; + Socket clientSocket = null; + + // ポート9999番を開く + try { + echoServer = new ServerSocket(9999); + } + catch (IOException e) { + System.out.println(e); + } + + // クライアントからの要求を受けるソケットを開く + try { + clientSocket = echoServer.accept(); + } catch (IOException e) { + e.printStackTrace(); + } + new ThreadEchoServer(clientSocket); + + } +} diff --git a/src/j2/ThreadTimeServer.java b/src/j2/ThreadTimeServer.java new file mode 100644 index 0000000..b7ef741 --- /dev/null +++ b/src/j2/ThreadTimeServer.java @@ -0,0 +1,90 @@ +package j2; +// 時刻を答えるサーバプログラムTimeServer.java +// このプログラムはポート番号5555番で動作するサーバです +// クライアントから接続がきたら、一方的に時刻を返します +// このプログラムを停止させるにはコントロールCを入力してください +// 使い方: java TimeServer + +// ライブラリの利用 +import java.io.IOException; +import java.io.PrintStream; +import java.net.InetSocketAddress; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.Date; + +// TimeServerクラス +class ThreadTimeServer implements Runnable { + Socket sock; + Thread thread; + ThreadTimeServer(Socket sc){ + sock = sc; + } + public void startRunning() { + thread = new Thread(this); + thread.start(); + } + @Override + public void run() { + PrintStream os ; + String outstr ; // 出力データを格納する文字列 + Date d ; // 日付時刻処理用オブジェクト + + System.out.println("(TimeServer) accepted (client has connected)") ; + System.out.println(sock.getRemoteSocketAddress().toString()) ; + try { + os = new PrintStream(sock.getOutputStream()) ; + // 出力用データの作成 + d = new Date() ; + outstr = "\n" + + "Hello, this is TimeServer.\n" + + d.toString() + "\n" ; + System.out.println("(Server-side message) "+ outstr) ; + // データの出力(1回目) + os.println(outstr) ; + Thread.sleep(3000); // 3秒まつ + outstr = new Date().toString() ; + os.println(outstr) ; // データの出力(2回目) + System.out.println("(Server-side message) "+ outstr) ; + Thread.sleep(3000) ; // 3秒まつ + outstr = "Thank you." ; + os.println(outstr); + System.out.println("(Server-side message) "+ outstr) ; + os.close() ; + // 接続終了 + sock.close() ; + System.out.println("(TimeServer) クライアントからの接続を閉じました") ; + } catch (IOException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public static void main(String args[]){ + ServerSocket svsock= null ;// サーバ用ソケット + Socket sock ;// ソケットの読み書き用オブジェクト + try{ + // サーバソケットの作成 + svsock = new ServerSocket() ; + // バインドするアドレスとポートを指定 + svsock.bind(new InetSocketAddress("0.0.0.0" , 5555)) ; //別のホストからの接続も受け付ける場合 +// svsock.bind(new InetSocketAddress("127.0.0.1", 5555)) ; //ローカルホストからのみ受け付ける場合 + + System.out.println("(TimeServer) 停止するには CTRL+C をおしてください") ; + + // サーバ側の処理の繰り返し + while(true){ + sock = svsock.accept() ;//接続がくるまで待つ + ThreadTimeServer tts = new ThreadTimeServer(sock); + tts.startRunning(); //ThreadTimeServerオブジェクトに残りの処理を任せる + + // これで、次の接続に対応できる + } + } catch(IOException e){ + System.out.println("*** Exception ***") ; + System.out.println(e) ; + System.exit(1) ; + } + } +} \ No newline at end of file diff --git a/src/j2/TimeServer.java b/src/j2/TimeServer.java index cf62131..714a969 100644 --- a/src/j2/TimeServer.java +++ b/src/j2/TimeServer.java @@ -3,7 +3,7 @@ // このプログラムはポート番号5555番で動作するサーバです // クライアントから接続がきたら、一方的に時刻を返します // このプログラムを停止させるにはコントロールCを入力してください -// 使い方java TimeServer +// 使い方: java TimeServer // ライブラリの利用 import java.io.IOException; @@ -16,51 +16,51 @@ // TimeServerクラス class TimeServer{ public static void main(String args[]){ - ServerSocket ssock = null ;// サーバ用ソケット + ServerSocket svsock= null ;// サーバ用ソケット Socket sock ;// ソケットの読み書き用オブジェクト - PrintStream os; - String outstr ;// 出力データを格納する文字列 - Date d ;// 日付時刻処理用オブジェクト + PrintStream os ; + String outstr ; // 出力データを格納する文字列 + Date d ; // 日付時刻処理用オブジェクト try{ // サーバソケットの作成 - ssock = new ServerSocket() ; + svsock = new ServerSocket() ; // バインドするアドレスとポートを指定 - ssock.bind(new InetSocketAddress("0.0.0.0", 5555)); //別のホストからの接続も受け付ける場合 -// ssock.bind(new InetSocketAddress("127.0.0.1", 5555)); + svsock.bind(new InetSocketAddress("0.0.0.0" , 5555)) ; //別のホストからの接続も受け付ける場合 +// svsock.bind(new InetSocketAddress("127.0.0.1", 5555)) ; //ローカルホストからのみ受け付ける場合 - System.out.println("(TimeServer) 停止するにはCTRL+Cをおしてください"); + System.out.println("(TimeServer) 停止するには CTRL+C をおしてください") ; + // サーバ側の処理の繰り返し while(true){ - sock = ssock.accept() ;//接続がくるまで待つ - System.out.println("(TimeServer) accepted (client has connected)"); - System.out.println(sock.getRemoteSocketAddress().toString()); - os = new PrintStream(sock.getOutputStream()); + sock = svsock.accept() ;//接続がくるまで待つ + System.out.println("(TimeServer) accepted (client has connected)") ; + System.out.println(sock.getRemoteSocketAddress().toString()) ; + os = new PrintStream(sock.getOutputStream()) ; // 出力用データの作成 d = new Date() ; outstr = "\n" + "Hello, this is TimeServer.\n" - + d.toString() + "\n"; - System.out.println("(Server-side message) "+ outstr); + + d.toString() + "\n" ; + System.out.println("(Server-side message) "+ outstr) ; // データの出力(1回目) - os.println(outstr); + os.println(outstr) ; Thread.sleep(3000); // 3秒まつ - outstr = new Date().toString(); - os.println(outstr); // データの出力(2回目) - System.out.println("(Server-side message) "+ outstr); - Thread.sleep(3000); // 3秒まつ - outstr = "Thank you."; + outstr = new Date().toString() ; + os.println(outstr) ; // データの出力(2回目) + System.out.println("(Server-side message) "+ outstr) ; + Thread.sleep(3000) ; // 3秒まつ + outstr = "Thank you." ; os.println(outstr); - System.out.println("(Server-side message) "+ outstr); -// os.flush(); - os.close(); + System.out.println("(Server-side message) "+ outstr) ; + os.close() ; // 接続終了 sock.close() ; - System.out.println("(TimeServer) クライアントからの接続を閉じました"); + System.out.println("(TimeServer) クライアントからの接続を閉じました") ; } } catch(IOException e){ - System.out.println("*** Exception ***"); - System.out.println(e); + System.out.println("*** Exception ***") ; + System.out.println(e) ; System.exit(1) ; } catch (InterruptedException e) { e.printStackTrace();