• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Rat

Passar int por Socket

5 mensagens neste tópico

Boas pessoal, eu queria vos perguntar como eh que posso passar um numero inteiro através de uma socket... Sempre que vejo nos tutoriais so passam chars e strings.

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nunca usei sockets em C, mas, em último caso, podes converter um inteiro para um array de chars/string, enviá-lo, e voltar a converter para inteiro depois de o converter.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

é capaz de resultar, mas o problema eh mais complexo, porque nao sou eu a fazer o servidor, eu tenho de fazer um cliente que se conecta a um servidor, recebe 4 unsigned ints, soma os e manda o total dos valores...

mas vou tentar isso, obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se estás a usar as funções send/recv do unix, ele recebe um apontador para void, logo deve poder enviar o inteiro directamente. Só tens que meter no campo de tamanho sizeof(int).

Não sei é se isto não dará problemas caso as máquinas em comunicação usem arquitecturas que representam os inteiros de modo diferente.

De qualquer forma, deves ver como é que o servidor envia os inteiros, e a partir daí é que fazes o teu programa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso depende de como é enviado.

O envio é smp byte a byte, o q certas linguagens fazem, como o java é disponibilizar métodos como o WriteInt(), WriteString(), ... que além dos bytes do valor envia tb dados sobre como reconstruir num objecto java.

Isto para do lado do receptor fazer o ReadInt(), ReadString()....

No entanto é à mm um array de bytes, apenas está disfarçado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora