/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pieShare.pieShareClient.services; import java.io.ByteArrayInputStream; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.logging.Level; import java.util.logging.Logger; import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonReader; import org.bouncycastle.util.Arrays; import org.pieShare.pieShareClient.api.Callback; import org.pieShare.pieTools.pieUtilities.service.pieLogger.PieLogger; /** * * @author RicLeo00 */ public class ClientTask implements Runnable { private DatagramSocket socket; private Callback callback; private ClientSendTask sendTask; private final ExecutorService executor; public ClientTask() { executor = Executors.newCachedThreadPool(); } public void setSendTask(ClientSendTask sendTask) { this.sendTask = sendTask; } public DatagramSocket getSocket() { return socket; } public void setSocket(DatagramSocket socket) { this.socket = socket; } public void setCallback(Callback callback) { this.callback = callback; } public void run() { while (true) { byte[] bytes = new byte[1024]; DatagramPacket packet = new DatagramPacket(bytes, bytes.length); try { socket.receive(packet); InputTask task = new InputTask(); task.setPacket(packet); task.setSendTask(sendTask); task.setCallback(callback); executor.execute(task); } catch (IOException ex) { PieLogger.debug(this.getClass(), "Error receive:", ex); } } } }