package Client;

import java.io.*;
import java.util.*;
import java.net.*;

/*
* >--UDP--<
* Author: Someone
*/
public class UDP implements Runnable{
  private DatagramSocket $udpSock	= null;
  private String $server = null;
  private int $sport = 0;


public UDP(String $saddr, int $sport)throws Exception{
  System.out.println("CLIENT UDP -> "+$saddr+":"+$sport);
  $udpSock = new DatagramSocket();
  $udpSock.setReceiveBufferSize(1024*1024);
  $server = $saddr;
  this.$sport = $sport;
  new Thread(this).start();
}

public void run(){
  while($udpSock != null){
    receive();
  }
}

public void receive(){
  try{
    DatagramPacket $packet = new DatagramPacket(new byte[1400],1400);
    $udpSock.receive($packet);
    System.out.println(new String($packet.getData()).trim());
  }catch(Exception $e){$e.printStackTrace();}
}

public void send(String $msg){
  try{
    DatagramPacket $packet = new DatagramPacket($msg.getBytes(),$msg.length(),InetAddress.getByName($server),$sport);
    $udpSock.send($packet);
  }catch(Exception $e){$e.printStackTrace();}
}

public void shutdown(){
  try{
    $udpSock.close();
  }catch(Exception $e){$e.printStackTrace();}
  $udpSock=null;
}
}