Comment faire un acceptées socket non bloquant en java

Je suis accepter une connexion à partir d'un client, puis en passant, que les socket connecté à un autre objet, cependant, que la prise doit être non-bloquant. Je suis en train d'utiliser getChannel().configureBlocking(false) mais cela ne semble pas fonctionner. Il doit être non-bloquant, car cette méthode est appelée ci-dessous toutes les 100ms. Est-il un autre moyen que je devrais faire cette non-bloquant? Merci pour toute aide!

public void checkForClients() {
  DataOutputStream out;
  DataInputStream in;
  Socket connection;
  InetAddress tempIP;
  String IP;

  try {
     connection = serverSocket.accept();
     connection.getChannel().configureBlocking(false);

     System.err.println("after connection made");

     in = new DataInputStream(connection.getInputStream());
     out = new DataOutputStream(connection.getOutputStream());
     tempIP = connection.getInetAddress();
     IP = tempIP.toString();

     System.err.println("after ip string");

     //create a new user ex nihilo
     connectedUsers.add(new ConnectedUser(IP, null, connection, in, out));


     System.err.println("after add user");
  } catch (SocketTimeoutException e) {
     System.err.println("accept timeout - continuing execution");
  } catch (IOException e) {
     System.err.println("socket accept failed");
  }
}
Cette question est posée dans ce fil stackoverflow.com/questions/15541804/.... La réponse est de mettre le serveur de socket dans son propre thread.

OriginalL'auteur Benaiah | 2009-11-09