Question

Quelqu'un sait-il comment recevoir (comment savoir que vous avez reçu) des données hors bande avec les sockets Java? En particulier, j'ai lu la documentation sendUrgentData et setOOBInline qui stipule que:

  

Notez qu'un soutien limité est prévu pour le traitement des données urgentes entrantes. En particulier, aucune notification des données d'urgence entrant est fourni et il n'y a pas la capacité de faire la distinction entre les données normales et les données urgentes, sauf disposition par un protocole de niveau supérieur.

Mais j'espère encore que quelqu'un a une solution: -)

Plus de détails:

J'envoie des objets sérialisés auge la prise et je ne vois pas vraiment comment je peux trouver un octet OOB « aléatoire » inséré dans le flux (autre que le fait que Java me donnera une exception quand je vais essayer désérialiser l'objet).

Était-ce utile?

La solution

Tomcat a une mise en œuvre de la douille maintenue JNI qui peut lire les paquets d'urgence d'une manière OOB.

Autres conseils

Il ressemble à Java, à Java 6 (je n'ai pas investigué Java 7 puisque je ne sais pas s'ils ont décidé de vous ce qui va ou non) et il semble que Java ne fournit aucun support du tout pour lire des informations TCP urgence d'une manière hors bande. Et il semble que cela est un choix délibéré, jusqu'à présent.

Cependant, I fait trouver un utilisateur qui mis en œuvre sa propre solution , en utilisant JNI, à lire avec succès des données urgentes sur flux. Ce hack est très ancienne et peut ou peut ne pas fonctionner sur JDK récente de. Je ne l'ai pas essayé moi-même! Votre milage peut varier. :) Mais nous espérons que cela vous aidera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top