diff --git a/java/libraries/net/src/processing/net/Server.java b/java/libraries/net/src/processing/net/Server.java index 3d55b6442..8edc6cd9c 100644 --- a/java/libraries/net/src/processing/net/Server.java +++ b/java/libraries/net/src/processing/net/Server.java @@ -220,6 +220,16 @@ public class Server implements Runnable { for (int i = 0; i < clientCount; i++) { int which = (index + i) % clientCount; Client client = clients[which]; + //Check for valid client + if (!client.active()){ + removeIndex(which); //Remove dead client + i--; //Don't skip the next client + //If the client has data make sure lastAvailable + //doesn't end up skipping the next client + which--; + //fall through to allow data from dead clients + //to be retreived. + } if (client.available() > 0) { lastAvailable = which; return client;