Pergunta

Alguém sabe como receber (como saber que você recebeu) out-of-band dados com soquetes Java? Em particular já li a documentação para sendUrgentData e setOOBInline que estabelece que:

Note, apenas suporte limitado é fornecido para manipulação de dados urgentes recebidas. Em particular, nenhuma comunicação de dados urgente de entrada é fornecida e não há nenhuma capacidade para distinguir entre dados normais e dados de urgência, salvo fornecidas por um protocolo de nível mais elevado.

Mas eu ainda estou esperando que alguém tem uma solução: -)

Mais detalhes:

Estou enviando objetos serializados Através da tomada e eu realmente não estou vendo como posso encontrar um byte OOB "aleatório" inserido na corrente (além do fato de que o Java vai me dar uma exceção quando eu vou tentar desserializar o objeto).

Foi útil?

Solução

Tomcat tem uma implementação mantido de tomada JNI que pode ler pacotes urgentes de uma forma OOB.

Outras dicas

Parece que Java, até Java 6 (I não investigar Java 7 desde que eu não sei se eles decidiram ao certo o que vai ou não) e parece que Java não fornece qualquer apoio em tudo para a leitura de informações TCP urgente de uma maneira out-of-band. E parece que esta é uma escolha deliberada, até agora.

No entanto, I fez encontrar um usuário que implementou sua própria solução , usando JNI, para ler com sucesso dados urgentes fora do fluxo. Este hack é muito antiga e pode ou não pode trabalhar em recente JDK da. Eu não tentei isso mesmo! Sua milhagem pode variar. :) Mas espero que isso irá ajudá-lo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top