private void handleDisconnect() { Connection c = null; try { netCode = ois.readInt(); c = checkConnectionNetCode(); if (c != null && c.getState() == Connection.STATE_CONNECTED) { oos.writeInt(DISCONNECTED); oos.flush(); System.out.println("->DISCONNECTED"); // $NON-NLS-1$ c.setState(Connection.STATE_DISCONNECTED); } else { System.out.println("->NOT_CONNECTED"); // $NON-NLS-1$ oos.writeInt(NOT_CONNECTED); oos.flush(); } } catch (IOException e) { System.out.println("handleDisconnect: " + e.getMessage()); // $NON-NLS-1$ if (c != null) { c.setState(Connection.STATE_DISCONNECTED); System.out.println( "Connection closed with " + //$NON-NLS-1$ c.getRemoteAddress() + ":" + c.getRemotePort()); // $NON-NLS-1$ } } }
private void handleSendCode() { Connection c = null; GeneticCode code; try { netCode = ois.readInt(); c = checkConnectionNetCode(); if (c != null && c.getState() == Connection.STATE_CONNECTED) { oos.writeInt(WAITING_CODE); oos.flush(); System.out.println("->WAITING_CODE"); // $NON-NLS-1$ code = (GeneticCode) ois.readObject(); System.out.println("Genetic code"); // $NON-NLS-1$ oos.writeInt(CODE_RECEIVED); oos.flush(); System.out.println("->CODE_RECEIVED"); // $NON-NLS-1$ c.getInCorridor().receiveOrganism(code); } else { System.out.println("->NOT_CONNECTED"); // $NON-NLS-1$ oos.writeInt(NOT_CONNECTED); oos.flush(); } } catch (IOException e) { System.out.println("handleSendCode: " + e.getMessage()); // $NON-NLS-1$ if (c != null) { c.setState(Connection.STATE_DISCONNECTED); System.out.println( "Connection closed with " + c.getRemoteAddress() + //$NON-NLS-1$ ":" + c.getRemotePort()); // $NON-NLS-1$ } } catch (ClassNotFoundException e) { System.out.println("handleSendCode: " + e.getMessage()); // $NON-NLS-1$ if (c != null) { c.setState(Connection.STATE_DISCONNECTED); System.out.println( "Connection closed with " + c.getRemoteAddress() + //$NON-NLS-1$ ":" + c.getRemotePort()); // $NON-NLS-1$ } } }
public void closeServer() { isActive = false; // Remove all connections synchronized (connections) { for (Connection c : connections) { c.send(DISCONNECT); c.setState(DISCONNECTED); } } connections = Collections.synchronizedList(new ArrayList<Connection>()); }
private void handleConnect() { try { int program_version = ois.readInt(); port = ois.readInt(); address = listenSocket.getInetAddress(); netCode = ois.readInt(); Connection c = checkConnectionNetCode(); if (c != null) { oos.writeInt(ALREADY_CONNECTED); oos.flush(); System.out.println("->ALREADY_CONNECTED"); // $NON-NLS-1$ } else { if (isAcceptingConnections()) { if (connections.size() < Utils.getMAX_CONNECTIONS()) { if (Utils.VERSION == program_version) { Connection newConnection = newConnection(); if (newConnection != null) { oos.writeInt(CONNECTED); newConnection.setState(Connection.STATE_CONNECTED); System.out.println("->CONNECTED"); // $NON-NLS-1$ } else { oos.writeInt(ALREADY_CONNECTED); System.out.println("->ALREADY_CONNECTED"); // $NON-NLS-1$ } oos.flush(); } else { oos.writeInt(INCOMPATIBLE_PROGRAM_VERSION); oos.flush(); System.out.println("->INCOMPATIBLE_PROGRAM_VERSION"); // $NON-NLS-1$ } } else { oos.writeInt(TOO_MANY_CONNECTIONS); oos.flush(); System.out.println("->TOO_MANY_CONNECTIONS"); // $NON-NLS-1$ } } else { oos.writeInt(NOT_ACCEPTING_CONNECTIONS); oos.flush(); System.out.println("->NOT_ACCEPTING_CONNECTIONS"); // $NON-NLS-1$ } } } catch (IOException ex) { System.out.println(ex.getMessage()); } }