Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package udps;
- import java.io.IOException;
- import java.net.DatagramPacket;
- import java.net.DatagramSocket;
- import java.net.SocketException;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class UDPServer {
- public static void main(String[] args) {
- UDPServer server = new UDPServer();
- server.init();
- }
- public void init() {
- Thread serverThread = new Thread(new Server());
- serverThread.start();
- }
- public class Server implements Runnable {
- public void run() {
- DatagramSocket socket = null;
- try {
- socket = new DatagramSocket(7777);
- } catch (SocketException ex) {
- Logger.getLogger(UDPServer.class.getName()).log(Level.SEVERE, null, ex);
- }
- ExecutorService pool = Executors.newFixedThreadPool(32);
- for (;;) {
- DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
- try {
- socket.receive(packet);
- } catch (IOException ex) {
- Logger.getLogger(UDPServer.class.getName()).log(Level.SEVERE, null, ex);
- }
- pool.execute(new Responder(socket, packet));
- }
- }
- }
- public class Responder implements Runnable {
- DatagramSocket socket = null;
- DatagramPacket packet = null;
- public Responder(DatagramSocket socket, DatagramPacket packet) {
- this.socket = socket;
- this.packet = packet;
- }
- public void run() {
- byte[] data = "PONG".getBytes();
- DatagramPacket response = new DatagramPacket(data, data.length, packet.getAddress(), packet.getPort());
- System.out.println(packet.getData().toString());
- try {
- socket.send(response);
- } catch (IOException ex) {
- Logger.getLogger(UDPServer.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement