Comunicação Socket Java(server)&lt-C(client) [RESOLVIDO]  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
brlima
Moderador
[Avatar]

Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline

Pessoal,

Estou tentando fazer uma implementação de um servidor socket em java para escutar um client em feito em C.

O problema está em tentar ler o conteudo enviado pelo client (que está em C).

O servidor está OK. o Client tb. Se o client é feito em java, a comunicação ocorre perfeitamente. Mas em C não esta ocorrendo isso.

Aparentemente, o server em java consegue reconhecer o envio do pacote pelo client em C, mas nao consegue recuperar o conteudo do mesmo pelo método readUTF.

Segue o codigo em java do server:


Bruno R. Lima
-------------------------------------------
flickr :: twitter
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline


String s = in.readUTF();


Você precisa implementar algo semelhante ao DataInputStream/DataOutputStream em C. Para tanto, é necessário
saber como é o formato de dados esperado por essas Streams.

Por exemplo:
No caso de readUTF/writeUTF, é necessário pôr 2 bytes que indicam o comprimento da String (já transformada para bytes), e codificar a String em UTF modificada (ou seja, se houver um zero binário dentro da string, não é codificada como um byte zero, mas de uma outra forma que deve ser vista no fonte dessas classes.


deve gerar os seguintes bytes, que o programa C deve interpretar:


Note que a letra ü que usa apenas 1 byte em codificação ISO-8859-1, usa 2 em UTF-8.
Outra coisa é que o comprimento ficou em 16 bytes (isso dá 0010 em hexadecimal, ou seja, os 2 primeiros bytes ficam 00 10).
[WWW]
brlima
Moderador
[Avatar]

Membro desde: 12/05/2003 14:03:38
Mensagens: 1537
Localização: São Paulo - SP
Offline

Valeu Thingol!

Não cheguei nesse ponto, mas ajudou a entender que DataStream não era o que eu precisava...

Usei o BufferedStream, e funcionou legal...

Tks.!

Bruno R. Lima
-------------------------------------------
flickr :: twitter
[MSN]
gennf
Entusiasta Java

Membro desde: 17/05/2011 12:59:51
Mensagens: 16
Offline

Pessoal,

Me desculpe por ressuscitar esse tópico mas estou com um problema semelhante mas com PHP e Java.

Tenho um servidor de socket em PHP e um cliente em JAVA. Com o cliente (JAVA) consigo me conectar tranquilamente ao servidor (PHP), o servidor recebe os dados enviados pelo cliente, mas, o cliente não consegue receber os dados enviados pelo servidor.

Será que o problema é mesmo mencionado nesse tópico? Será que vocês podem me ajudar a resolver?

Desde já agradeço a atenção de vocês.

Atenciosamente,

GENNF
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team