package com.peterhi.net7;
import java.net.DatagramPacket;
import java.net.SocketAddress;
import java.text.MessageFormat;
import com.peterhi.net.Event;
import com.peterhi.net.Listener;
import com.peterhi.net.Local;
public final class ServerApp {
public static void main(String[] args) throws Exception {
final Local local = new Local(22222);
local.getSocket().setSoTimeout(10);
local.addListener(new Listener() {
@Override
public void received(Event event) {
SocketAddress address = event.getAddress();
byte[] data = event.getData(true);
System.out.println(MessageFormat.format("Received {0} bytes of data from {1}.", data.length, address));
}
});
Runnable worker = new Runnable() {
@Override
public void run() {
try {
while (local.getSocket().isBound()) {
DatagramPacket packet = local.receive();
if (packet != null) {
local.process(packet);
}
local.dispatch();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
Thread thread = new Thread(worker);
thread.start();
}
}