All pastes #1912 Raw Edit

java

public text v1 · immutable
#1912 ·published 2004-11-04 21:57 UTC
rendered paste body
package rvskeyserver;

import java.io.IOException;
import java.io.PrintStream;
import java.net.*;
import java.util.Date;

public class KeyServer extends Thread
{
  public static int packetnr;

  private PacketData packetdata;
  private boolean finished;
  private int packetLen;
  private byte bytes[];

  public KeyServer()
  {
    System.out.println("Starting instance of KeyServer");
    packetnr = 0;
    finished = false;
    packetLen = 1024;
    packetdata = new PacketData();
  }

  public static void main(String[] args)
  {
    KeyServer key = new KeyServer();
    key.start();
  }

  public void run()
  {
    try
    {
      while(!finished)
      {
        DatagramSocket serverSocket = new DatagramSocket(33000);
        bytes = new byte[packetLen];
        DatagramPacket packet = new DatagramPacket(bytes, bytes.length);
        serverSocket.receive(packet);
        packetnr++;
        System.out.println("Received packet #" + packetnr + ", LEN: " + packet.getLength());
        serverSocket.close();
        if(PacketData.isCrackable(packet))
        {
          sendResponse(packet);
        }
        else
        {
          new ForwardClient(packet).start();
        }

      }

    }
    catch(SocketException se)
    {
      se.printStackTrace();
    }
    catch(IOException ioe)
    {
      ioe.printStackTrace();
    }

    System.out.println("KeyServer done");
  }

  public void setFinished(boolean finished)
  {
    this.finished = finished;
  }

  public void sendResponse(DatagramPacket reqPacket)
  {
    try
    {
      byte stream[] = packetdata.prepareData(reqPacket);
      DatagramPacket resPacket = new DatagramPacket(stream, stream.length, reqPacket.getAddress(), reqPacket.getPort());
      DatagramSocket clientSocket = new DatagramSocket(33000);
      clientSocket.send(resPacket);
      clientSocket.close();
    }
    catch(SocketException se)
    {
      se.printStackTrace();
    }
    catch(IOException ioe)
    {
      ioe.printStackTrace();
    }
  }
}