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

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
プログラミング第5回 1 while ループ 文字列の操作
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
プログラミング基礎I(再) 山元進.
IO - 入出力 小西 亨.
Applet 岡部 祐典 鈴木 敬幸.
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
独習Java ・ 12.1  インターネットアドレス ・ 12.2  サーバーソケットとソケット  12月 19日    小笠原 一恵.
String - 文字列 2009年10月9日 7ADD2116 佐藤洋輔.
ファイル送信機能付きマルチキャストチャット
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
Bridge Pattern
第12回独習Javaゼミ 12章セクション3~4 発表者 直江 宗紀.
情報処理技法 (Javaプログラミング)2 第2回 前期の復習(2)
JAVA入門② 変数と型 式と演算子 制御文.
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
8.1 例外処理 8.2 catchブロックの検索 8.3 throwステートメント 8.4 例外とエラークラス 8.6 独自の例外
変数のスコープ クラス クラス変数 すべてのメソッドの外側でstaticで定義
JAVA入門.
Java Distributed Objects 1
独習Java ・ 8.1  例外処理 ・ 8.2  catch ブロックの検索  12月 5日    小笠原 一恵.
例外処理 と ファイル入出力 情報システム学科 平塚 聖敏.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
リファレンスの復習と例外処理 2005年6月14日 海谷 治彦.
リファレンス,配列,例外処理 その他演習に役立つこと
暗号技術 ~JAVAプログラム③~ (7週目)
日本Androidの会 事務局長 SIPropプロジェクト 代表 グロースエクスパートナーズ 今村 謙之(いまむら のりつな)
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
暗号技術 ~JAVAプログラム①~ (5週目)
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
Java Distributed Objects 1
Ibaraki Univ. Dept of Electrical & Electronic Eng.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
UDPマルチキャストチャット    空川幸司.
ネットワークプログラミング (5回目) 05A1302 円田 優輝.
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
ソフトウェア制作論 平成30年11月21日.
UDPマルチキャストチャット      空川幸司.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
暗号技術 ~JAVAプログラム②~ (6週目)
ソフトウェア制作論 平成30年11月14日.
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
ネットワークプログラミング 05A1302 円田 優輝.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
第6章 インターネットアプリケーション 6.1 インターネットアプリケーション 6.2 Javaによるネットワーク処理 6.3 電子メール
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

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

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

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

ユニキャスト

マルチキャスト

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

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 = “224.0.0.1”;     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

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

import java.net.*; import java.io.*; public class MulticastReceiver {   public static void main(String args[]) {   int PORT = 10007;   String multicastaddress = “224.0.0.1”;   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

        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

送信画面(150.43.244.114) 受信画面

送信画面(150.43.244.122) 受信画面

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

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メソッドを使って受信します

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

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

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