@Override
  public void disconnect() {
    synchronized (mySocketObject) {
      myConnected = false;

      if (mySocket != null && !mySocket.isClosed()) {
        try {
          mySocket.close();
        } catch (IOException ignore) {
        }
      }
    }

    cleanUp();
  }