6_MiddleExam_UDP_networking
中間テスト(いままでの総合復習)
UDP通信
【課題】
隣同士UDPで通信するプログラムを書こう。
Kadai6Server.java
Kadai6Client.java
内容:文字列"abc"をクライアントからサーバにおくると大文字の "ABC"に変換してサーバからクライアント返信せよ。
クライアント=>abc=>サーバ=>ABC=>サーバ=>クライアント
準備:
1.イーサネットにつなげよう
2.無線を切ろう 。ファヤウオールをオフに(あとで戻す)
3.自分のipアドレスを確認しよう。ipconfig
4.自分にpingを打ってみよう
ping 133.27.xx.xx
ping の終了はコマンド-c
5.相手にpingを打ってみよう
ping 133.27.xx.xx
6.サンプルのDendaiUDPClient1.java
DendaiUDPServer1.javaをテストしよう。
7.開発したKadai6Server.javaでメッセージの返信をもらおう。
8.String.toUpperCase()を使ってみよう。
https://docs.oracle.com/javase/jp/6/api/java/lang/String.html#toUpperCase()
※一人でやっても良いです。
※ 二人でやった人は相方の学籍番号と名前をソースコードに記載してください。
※来週の授業開始までに提出フォルダに提出してください。
※二人チームであっても各自
サーバとクライアントをそれぞれ開発してください。
【発展問題X】
ブロードキャスト通信に挑戦しよう。
【先週からの発展問題Y】
XmasPresentサーバクライアントを改造し、
Serializable,ITaskが実装されたTaskObjをサーバとクライアントでやりとりし
計算のみサーバで実行させるサーバクライアントを完成させよ。
※ 計算は最大素数を求めるもの
ITaskインターフェースに以下の3つのメソッドが必ずあることとする。
public void setExecNumber(int x); //クライアントで最初に計算させる数字を入力しておく関数
public void exec() , //サーバで計算を実行をさせる関数
public int getResult() //クライアントで結果を取り出す関数
サーバクライアントはTaskServer,TaskClientという名前にすること。
トラブルを避けるためデフォルトパッケージで実行すること。
サーバ上で計算された最大素数は、クライアントでint getResult()で取得できるように実装せよ。
サーバ側で実行するメソッドはexec()関数のみ
クライアントから入力された値の最大素数がかえってくるプログラムを実装せよ。
ヒント: 素数判定は与えられたNに対して2からN平方根の数を一つ一つ割り切れるか調べればよい。もっとよい計算問題あります。
応用編:ユーザからの入力を繰り返し受付、サーバに素数計算を返すように改良せよ。whileを用いよ。
名前はTaskServerWhile,TaskClientWhileを完成させよ。
終了条件は1以下の値が入力された場合にサーバおよびクライアントは終了するようにせよ。
Eclipseである程度確認できたらコマンドプロンプトでフォルダをサーバとクライアントにわけ(パッケージはどちらもなし)実行せよ。
入力数を大きくし、サーバでcpuに負荷がかかっている様子をスクリーンキャプチャして課題提出フォルダに一緒にいれよ。