Presentation is loading. Please wait.

Presentation is loading. Please wait.

UDPマルチキャストチャット                    空川幸司.

Similar presentations


Presentation on theme: "UDPマルチキャストチャット                    空川幸司."— Presentation transcript:

1 UDPマルチキャストチャット                    空川幸司

2 前回までのあらすじ TCPとUDPの違い FTPサーバについての勉強

3 スライド一覧 パケットの配送方式の説明 UDPパケット送信プログラム UDPパケット受信プログラム プログラムの実行画面
プログラムの主要部分の説明 参考文献

4 ユニキャスト

5 マルチキャスト

6 UDPパケット送受信プログラム ポート番号 10007 マルチキャストアドレス 224.0.0.1 クラスDアドレス
ポート番号 10007 マルチキャストアドレス  クラスDアドレス  上位4ビットが“1110”で始まる   ~   そのうち ~ はTTLが1に設定されて送信されるのでルータによって転送されることがない

7 import java. net. ; import java. io
import java.net.*; import java.io.*; public class MulticastSender {   public static void main(String args[]) {     int PORT = 10007;     String multicastAddress = “ ”;     byte[] buf = new byte[1024];          try {       MulticastSocket socket = new MulticastSocket(PORT);       InetAddress chat =         InetAddress.getByName(multicastAddress);       socket.joinGroup(chat);       BufferedReader keyIn = new BufferedReader(new         InputStreamReader(System.in));        送信プログラムその1

8 String message; while ((message = keyIn. readLine())
                    String message;       while ((message = keyIn.readLine()).length() > -1) {        byte[] bytes = message.getBytes(); DatagramPacket packet = new DatagramPacket(bytes,bytes.length,chat,PORT); socket.send(packet); if(message.equals("quit")) { MyException e = new MyException(); throw e; } } } catch (Exception e){} } } class MyException extends Exception { MyException() { System.out.println("接続終了"); } } その2

9 import java.net.*; import java.io.*; public class MulticastReceiver {   public static void main(String args[]) {   int PORT = 10007;   String multicastaddress = “ ”;   byte[] buf = new byte[1024];   DatagramPacket packet = new DatagramPacket(buf,buf.length);   try {      MulticastSocket socket = new MulticastSocket(PORT);      InetAddress chat =        InetAddress.getByName(multicastaddress);      socket.joinGroup(chat);      System.out.println(“MulticastRecieverを起動しました”); 受信プログラムその1

10         while(true) { socket.receive(packet); String message = new String(buf,0,packet.getLength()); System.out.println(packet.getSocketAddress() “:”+message); if(message.equals(“quit”)) { System.out.println(“相手が接続を終了しました”); } } }catch (Exception e) { System.out.println(e);      }   } } その2

11 送信画面( ) 受信画面

12 送信画面( ) 受信画面

13 InetAddress chat = InetAddress.getByName(multicastaddress)
MulticastSocket socket = new MulticastSocket(PORT)  マルチキャストソケットの作成にはポート番号を指定 Socket.joinGroup(chat) 作成したマルチキャストソケットとjoinGroupメソッドを使って、マルチキャスト通信に参加

14 DatagramPacket packet = new DatagramPacket(bytes,bytes
DatagramPacket packet = new DatagramPacket(bytes,bytes.length,chat,PORT); Socket.send(packet); このUDPデータグラムをsendメソッドでマルチキャストソケットに送ります DatagramPacket packet = new DatagramPacket(bytes,bytes.length); socket.receive(packet); 受信の場合は受け取る準備をするので 受け皿を用意し、receiveメソッドを使って受信します

15 次にやっていくこと GUIでの機能の追加 オブジェクト指向でのプログラミング チャットソフトとして機能できるように作る

16 参考文献・サイト 基礎からわかるTCP/IP Javaネットワークプログラミング 第2版 小高知宏 TECHSCORE
 

17 ご清聴ありがとうございました


Download ppt "UDPマルチキャストチャット                    空川幸司."

Similar presentations


Ads by Google