26.07.2013 Views

Java How to Program Fourth Edition - DCC

Java How to Program Fourth Edition - DCC

Java How to Program Fourth Edition - DCC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 17 Networking 1035<br />

The MulticastSendingThread construc<strong>to</strong>r (lines 20–26) takes as an argument an<br />

array of bytes containing the message.<br />

1 // MulticastSendingThread.java<br />

2 // MulticastSendingThread is a Thread that broadcasts a chat<br />

3 // message using a multicast datagram.<br />

4 package com.deitel.messenger.sockets.server;<br />

5<br />

6 // <strong>Java</strong> core packages<br />

7 import java.io.*;<br />

8 import java.net.*;<br />

9<br />

10 // Deitel packages<br />

11 import com.deitel.messenger.sockets.*;<br />

12<br />

13 public class MulticastSendingThread extends Thread<br />

14 implements SocketMessengerConstants {<br />

15<br />

16 // message data<br />

17 private byte[] messageBytes;<br />

18<br />

19 // MulticastSendingThread construc<strong>to</strong>r<br />

20 public MulticastSendingThread( byte[] bytes )<br />

21 {<br />

22 // invoke superclass construc<strong>to</strong>r <strong>to</strong> name Thread<br />

23 super( "MulticastSendingThread" );<br />

24<br />

25 messageBytes = bytes;<br />

26 }<br />

27<br />

28 // deliver message <strong>to</strong> MULTICAST_ADDRESS over DatagramSocket<br />

29 public void run()<br />

30 {<br />

31 // deliver message<br />

32 try {<br />

33<br />

34 // create DatagramSocket for sending message<br />

35 DatagramSocket socket =<br />

36 new DatagramSocket( MULTICAST_SENDING_PORT );<br />

37<br />

38 // use InetAddress reserved for multicast group<br />

39 InetAddress group = InetAddress.getByName(<br />

40 MULTICAST_ADDRESS );<br />

41<br />

42 // create DatagramPacket containing message<br />

43 DatagramPacket packet = new DatagramPacket(<br />

44 messageBytes, messageBytes.length, group,<br />

45 MULTICAST_LISTENING_PORT );<br />

46<br />

47 // send packet <strong>to</strong> multicast group and close socket<br />

48 socket.send( packet );<br />

Fig. Fig. 17.15 17.15 17.15 MulticastSendingThread for delivering outgoing messages <strong>to</strong> a<br />

multicast group via DatagramPackets.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!