// Adpated by Agustin J. Gonzalez from //: c15:ChatterClient.java // From Thinking in Java, 2nd Edition import java.net.*; import java.io.*; public class UDP_Client { // Can listen & send on the same socket: private DatagramSocket s; private InetAddress hostAddress; private byte[] buf = new byte[1000]; private DatagramPacket dp = new DatagramPacket(buf, buf.length); private int id; public UDP_Client(String serverName) { try { // Auto-assign port number: s = new DatagramSocket(); hostAddress = InetAddress.getByName(serverName); } catch(UnknownHostException e) { System.err.println("Cannot find host"); System.exit(1); } catch(SocketException e) { System.err.println("Can't open socket"); e.printStackTrace(); System.exit(1); } System.out.println("UDP_Client starting"); } public void sendData() { try { for(int i = 0; i < 25; i++) { String outMessage = "Client message #" + i; // Make and send a datagram: byte[] sendData = outMessage.getBytes(); s.send(new DatagramPacket(sendData, sendData.length, hostAddress, UDP_EchoServer.INPORT)); // Block until it echoes back: s.receive(dp); // Print out the echoed contents: String rcvd = "Client rcvd from " + dp.getAddress() + ", " + dp.getPort() + ": " + new String(dp.getData(), 0, dp.getLength()); System.out.println(rcvd); } } catch(IOException e) { e.printStackTrace(); System.exit(1); } } public static void main(String[] args) { new UDP_Client(args[0]).sendData(); } }