1 import java net import java io public
送信プログラムその 1 import java. net. *; import java. io. *; public class Multicast. Sender { public static void main(String args[]) { int PORT = 10007; String multicast. Address = “ 224. 0. 0. 1”; byte[] buf = new byte[1024]; try { Multicast. Socket socket = new Multicast. Socket(PORT); Inet. Address chat = Inet. Address. get. By. Name(multicast. Address); socket. join. Group(chat); Buffered. Reader key. In = new Buffered. Reader(new Input. Stream. Reader(System. in));
その 2 String message; while ((message = key. In. read. Line()). length() > -1) { byte[] bytes = message. get. Bytes(); Datagram. Packet packet = new Datagram. Packet(bytes, bytes. length, chat, PORT); socket. send(packet); if(message. equals("quit")) { My. Exception e = new My. Exception(); throw e; } } } catch (Exception e){} } } class My. Exception extends Exception { My. Exception() { System. out. println("接続終了"); } }
受信プログラムその 1 import java. net. *; import java. io. *; public class Multicast. Receiver { public static void main(String args[]) { int PORT = 10007; String multicastaddress = “ 224. 0. 0. 1”; byte[] buf = new byte[1024]; Datagram. Packet packet = new Datagram. Packet(buf, buf. length); try { Multicast. Socket socket = new Multicast. Socket(PORT); Inet. Address chat = Inet. Address. get. By. Name(multicastaddress); socket. join. Group(chat); System. out. println(“Multicast. Recieverを起動しました”);
その 2 while(true) { socket. receive(packet); String message = new String(buf, 0, packet. get. Length()); System. out. println(packet. get. Socket. Address()+ “: ”+message); if(message. equals(“quit”)) { System. out. println(“相手が接続を終了しました”); } } }catch (Exception e) { System. out. println(e); } } }
Datagram. Packet packet = new Datagram. Packet(bytes, bytes. length, chat, PORT); Socket. send(packet); このUDPデータグラムをsendメソッドでマルチキャスト ソケットに送ります Datagram. Packet packet = new Datagram. Packet(bytes, bytes. length); socket. receive(packet); 受信の場合は受け取る準備をするので 受け皿を用意し、receiveメソッドを使って受信します
- Slides: 17