// Tags: not-a-test
/*
Copyright (C) 1999 Hewlett-Packard Company
This file is part of Mauve.
Mauve is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Mauve is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Mauve; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
package gnu.testlet.wonka.net.MulticastSocket;
import gnu.testlet.TestHarness;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
class MulticastClient extends Thread {
protected static TestHarness harness;
public MulticastClient() {
try {
socket = new MulticastSocket(4446);
address = InetAddress.getByName("230.0.0.1");
socket.joinGroup(address);
clientPort = socket.getLocalPort();
} catch (Exception e) {
System.out.println("Client constructor failed");
socket = null;
e.printStackTrace();
}
}
public void run() {
// System.out.println("Starting Client");
if (socket != null) {
try {
for (;;) {
byte[] buf = new byte[256];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
String received = new String(packet.getData());
// System.out.println("Received: " + received);
if (received.startsWith("bye"))
break;
}
socket.leaveGroup(address);
socket.close();
} catch (Exception e) {
System.out.println("Client run failed");
e.printStackTrace();
}
}
}
public int getPort() {
return clientPort;
}
private int clientPort;
private MulticastSocket socket;
private InetAddress address;
private DatagramPacket packet;
public void closeSocket() {
if (socket != null) {
socket.close();
}
}
}