localhostの13番ポートで動作しているDaytimeサーバ に接続するクライアントは次のように書くことができます。 接続するとサーバが現在の時刻を表す1行の文字列 (たとえば "54685 08-08-07 01:06:11 50 0 0 546.1 UTC(NIST) *") を返します。
提出〆切は、次回の講義が始まる時刻です。
提出先 | http://ynitta.com/class/network/local/handin/list.php?id=kadai2a |
---|---|
提出ファイル | RunDaytimeText2.java |
コメント欄 |
引数として次の指定をした場合のそれぞれの 結果出力をコピーし、さらになぜそのような結果が返ってきたのか 原因を説明しなさい。 $ java RunDaytimeText2 localhost $ java RunDaytimeText2 nx.tsuda.ac.jp $ java RunDaytimeText2 nx.tsuda.ac.jp 13 $ java RunDaytimeText2 nx.tsuda.ac.jp 25 $ java RunDaytimeText2 nx.tsuda.ac.jp 8000 $ java RunDaytimeText2 xxx.tsuda.ac.jp 13 万一、120秒以上プログラムが走り続けて何の出力も得られない場合は、 Control-C(Contorolキーを押しながら Cキーをタイプする)で、 そのプログラムを強制終了させ、なぜハングした状態になったのか その原因を説明しなさい。 原因には
[root@nx]# firewall-cmd --list-all --zone=public public (active) target: default icmp-block-inversion: no interfaces: eno16777984 sources: services: dhcpv6-client ssh ports: 80/tcp 443/tcp 13/tcp 25/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
さて、RunDaytimeText.javaはlocalhostでDaytimeサーバが 動作していないと試してみることができません。 RunDaytimeText.javaを参考にして、 第1引数ではホスト名を、 第2引数ではポート番号を指定できるように変更した RunDaytimeText2.javaを作成して下さい。
引数の指定方法コマンドラインの指定 | 接続ホスト名 | ポート番号 |
java RunDaytimeText2 | localhost | 13 |
java RunDaytimeText2 文字列 | 文字列 | 13 |
java RunDaytimeText2 文字列 番号 | 文字列 | 番号 |
java RunDaytimeText2 文字列 番号 ... | 文字列 | 番号 |
(注意) 公開 daytimeサーバである time.nist.gov に接続してみましょう。 学内ネットワーク(公式133.99/16, private address: 192.168/16) から外部への13番ポートはフィルタリングされているので接続できませんが、 皆さんの自宅からならばできる可能性が高いです。 また、今回の演習の時間に、nx.tsuda.ac.jp の13番ポートで時刻を返すサーバを 動作させておきますので、そちらにも接続をして動作を確認して下さい。