public void close() throws IOException { if (in != null) { in.close(); } if (out != null) { out.close(); } if (socket != null && !socket.isClosed()) { socket.close(); } }
@Override public void run() { SOCKET_PORT = String.valueOf(socket.getRemoteSocketAddress()); dLog.trace("Starting to run server"); // get all users try { users = userSvc.getAllUsers(); } catch (Exception e2) { dLog.error("Unable to get all users", e2); } dLog.trace("Got " + users.size() + " users"); try { while (!exit) { out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); dLog.trace("Successfully got input/output streams"); String inputStr = ""; out.writeObject("Burrito POS Server Connected. Enter Username: "******"OUTPUT | Burrito POS Server Connected. Enter Username: "******"OUTPUT | Burrito POS Server Connected. Enter Username: "******"INPUT | " + inputStr); parent.updateStatus(appendInfo("INPUT | " + inputStr)); while (!inputStr.equals("exit") && !this.exit) { dLog.trace("Exit? " + exit); if (tUser.getUserName() == null) { tUser.setUserName(inputStr); out.writeObject("OK User " + inputStr + ", enter password: "******"OUTPUT | OK User " + inputStr + ", enter password: "******"OUTPUT | Burrito POS Server Connected. Enter Username: "******"Username: "******" | Password: "******"Stored user: "******" | stored pass: "******"OK User verified. Enter command: "); dLog.trace("OUTPUT | OK User verified. Enter command: "); parent.updateStatus(appendInfo("OUTPUT | OK User verified. Enter command: ")); auth = true; } else { tUser.setUserName(null); tUser.setPassword(null); out.writeObject("ERROR Invalid Credentials. Enter Username: "******"OUTPUT | ERROR Invalid Credentials. Enter Username: "******"OUTPUT | ERROR Invalid Credentials. Enter Username: "******"exit")) { out.writeObject("OK Command " + inputStr + " entered. Enter command: "); dLog.trace("OUTPUT | OK Command " + inputStr + " entered. Enter command: "); parent.updateStatus( appendInfo("OUTPUT | OK Command " + inputStr + " entered. Enter command: ")); } } inputStr = (String) in.readObject(); dLog.trace("INPUT | " + inputStr); parent.updateStatus(appendInfo("INPUT | " + inputStr)); } exit = true; try { dLog.trace("Closing the socket"); auth = false; out.writeObject("Exiting"); dLog.trace("Exiting"); parent.updateStatus(appendInfo("Exiting")); this.close(); } catch (Exception e1) { dLog.error("Exception in closing socket", e1); } } } catch (Exception e) { dLog.error("Exception in SocketManager run", e); } }