olá,
estou com uma duvida em qual seria o melhor jeito de criar uma comunicação entre sockets que permita receber varios tipos de objetos diferentes..
atualmente minha classe está +- assim (deletei a parte inutel):
Listener:BufferedReader msgFromClient = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while(true){
if((msg = msgFromClient.readLine())!=null){
// faz o tratamento
}
}
public function sendImageByteArray(ba:ByteArray):void{
writeBytes(ba);
flush();
}
public function send(o:String):void{
writeUTF(o);
flush();
}
até ai tudo bem, tudo oq eu mando de um lado (do Flex), chega no Java..
acontece que... eu preciso enviar tanto mensagens em texto, quanto imagens, e outros arquivos.
como seria o melhor jeito de fazer o Java entender quando está vindo um arquivo ou apenas texto?
pois se eu envio uma string do Flex (pelo padrão UTF)
a palavra "batata"
chega como 6 B A T A T A 0
jah q 6 eh o tamanho da String enviada e 0 o terminador..
entao se eu envio um array de bytes...
ele vai direto os \u0000 ~ \uFFFF
não achei um modelo de como identificar tudo que está vindo de forma mais simplificada..
tinha feito algo mais gambiarrento enviando uma UTF antes de enviar um bytearray para o Java identificar q eh uma imagem q esta vindo, mas não sei se é o mais 'correto'..
pensei em tambem usar a classe DataInputStream (atualmente esta com a BufferedReader) que contem metodos para ler byte[], UTF, entre outros tipos..
BufferedReader.readLine() é indicado para esse caso?
obrigado =]