Newer
Older
NWP / src / j2 / NetClock.java
@Motoki Miura Motoki Miura on 21 Aug 2020 1 KB init
package j2;
// 時刻を答えるサーバプログラムNetclock.java
// このプログラムはポート番号6000番で動作するサーバです
// クライアントからの接続に対し,時刻を返します
// このプログラムを停止させるにはコントロールCを入力してください
// 使い方java Netclock

import java.io.DataOutputStream;
// ライブラリの利用
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

// Netclockクラス
class NetClock{
	public static void main(String args[]){
		ServerSocket servsock = null ;// サーバ用ソケット
		Socket sock ;// ソケットの読み書き用オブジェクト
		DataOutputStream writer ;// 出力ストリーム
		String outstr ;// 出力データを格納する文字列
		int i ;//出力の繰り返し制御用変数
		Date d ;// 日付時刻処理用オブジェクト

		try{
			// サーバソケットの作成
			servsock = new ServerSocket() ;
			servsock.bind(new InetSocketAddress("127.0.0.1", 5555));
			// サーバ処理の繰り返し
//			while(true){
				sock = servsock.accept() ;//接続受付
				writer = new DataOutputStream(sock.getOutputStream()) ;
				System.out.println("accepted (client has connected)");
				// 出力用データの作成
				d = new Date() ;
				outstr = "\n"
					+ "Hello, this is Netclock server."
					+ "\n" + d.toString() + "\n"
					+ "Thank you." + "\n";
				System.out.println("(Server-side message) "+ outstr);
				// データの出力
				writer.writeBytes(outstr);
				writer.flush();
//				for(i = 0; i < outstr.length(); ++i)
//					out.write((int)outstr.charAt(i)) ;
//				out.write('\n') ;
				writer.close();
				// 接続終了
				sock.close() ;
//			}
		}catch(IOException e){
			System.out.println("*** Exception ***");
			System.out.println(e);
			System.exit(1) ;
		}
	}
}