Java réseau: evented Socket/InputStream

Je me suis mise en œuvre d'un événement couche orientée sur Java de Sockets, et je me demandais si il y avait un moyen pour déterminer si les données en attente de lecture.

Mon approche normale serait de lire à partir de la socket dans un tampon, et d'appeler la condition des rappels lorsque la mémoire tampon est rempli au cours d'une certaine quantité d'octets (qui peut être 0, si la fonction de rappel doit être déclenché à chaque fois que quelque chose arrive), mais je soupçonne que Java est déjà la mise en mémoire tampon pour moi.

Est le available() méthode de InputStream fiable pour cela? Dois-je simplement read() et de faire ma propre mise en mémoire tampon sur le dessus de la Douille? Ou est-il un autre moyen?

InformationsquelleAutor slezica | 2011-05-11