import java.net.*;
import java.io.*;

public class UdpClient {
  public static void main(String[] argv) {
    try {
      // $B@\B3@h$N(B IP$B%"%I%l%9$H%]!<%HHV9f(B
      InetAddress addr = InetAddress.getByName(argv[0]);
      int port = Integer.parseInt(argv[1]);

      // $BE,Ev$J6u$$$F$$$k%]!<%HHV9f$K%=%1%C%H$r:n$k(B
      DatagramSocket dgSock = new DatagramSocket();
      while (true) {
        byte buff1[]= new byte[512];
        int n = System.in.read(buff1);
        // $BAw?.%Q%1%C%H$N:n@.(B
        DatagramPacket pa1 = new DatagramPacket(buff1, n, addr, port);
        dgSock.send(pa1);  // $B%Q%1%C%HAw=P(B
        System.out.println("Sent!");

        // $B<u?.%Q%1%C%HMQ%G!<%?NN0h$N:n@.(B
        byte buff2[] = new byte[512];
        DatagramPacket pa2 = new DatagramPacket(buff2, buff2.length);
        dgSock.receive(pa2); // $B%Q%1%C%H<u?.(B

        System.out.print("received: ");
        System.out.print(new String(pa2.getData()));
      }
    } catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }
  }
}
