Ir ao conteúdo
  • Cadastre-se
rafaelrrf

Soquetes de rede

Recommended Posts

Olá Pessoal,

 

Estou com problemas no enviar de mensagens entre Cliente/Servidor via socket. Estou usando 2 servidores Linux, sendo que um usa o programa cliente e outro o servidor. Os programas estão funcionando corretamente, eu faço a conexão tudo certinho, mas no envio da mensagem do cliente para o servidor ocorre um resultado inesperado. Estou usando a função send() para enviar a mensagem, uma mensagem de 32Kb, mas o servidor usando a função recv() recebe apenas 14480 bytes.

 

Fiz um teste de um Windows para Linux também, com o servidor no linux e o cliente no windows, e chegou apenas 2920 bytes da mensagem de 32kb no servidor.

 

E o engraçado é que a função não retorna erro(-1), diz que foi enviada corretamente.

 

Função send():

 if((send(sock, msg, 32768, 0)) == -1) {            perror("Erro ao enviar a mensagem.\t\n");            shutdown(sock, SD_SEND);            close(sock);        } else            printf("Mensagem enviada.");

Função recv():

if((nb = recv(cliente, buf, 32768, 0)) == -1) {	perror("Erro ao receber mensagem.\n");	close(cliente);	 } else	printf("Mensagem recebida. Bytes: %d\n", nb);

Alguem saberia a causa deste problema? Se seria alguma limitação do SO ou seria a forma de que estou enviando a mensagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×