Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) socket


djfarinha

Pergunta

Ola pessoal estou começando a programar sockets e to precisando de uma ajudinha.

estava tentando compilar este codigo e da o seguite erro.

rafael@rafael-desktop:~$ gcc -o tes tes.c

tes.c: In function ˜main"

tes.c:22: warning: incompatible implicit declaration of built-in function bzero

rafael@rafael-desktop:~$

o codigo é esse.

#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>    
#include <sys/socket.h>

main()
{
int Meusocket;
struct sockaddr_in net;
int connecti;

Meusocket = socket(AF_INET, SOCK_STREAM, 0);
if(Meusocket < 0)
{
printf("erro");

}
net.sin_family = AF_INET;
net.sin_port = htons(31337);
net.sin_addr.s_addr = inet_addr("127.0.0.1");
bzero(&(net.sin_zero),8);

connecti = connect(Meusocket,(struct sockaddr * )&net, sizeof(net));
if(connecti < 0)
{
printf("erro connect");


}
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Ae djfarinha, beleza cara?

O tipo de retorno da main será int quer você especifique quer não, então por questões de legibilidade, eu particularmente, aconselho espeficiar.

Um dos warnings devido a função bzero() estar no header string.h, o qual você não incluiu.

O outro warning também é pelo mesmo motivo, agora com o header arpa/inet.h .

Tente aí no seu computador agora com as devidas modificações. Aqui a conecção não tá sendo feita, e como meu forte não é sockets vou dar uma pesquisada antes de falar sobre o problema. Espero que por hora eu tenha ajudado.

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom, primeiro recomendo usar memset para 'zerar' os valores da estrutura sockaddr_in (se não me engano consta até no próprio exemplo da MSDN)

memset(&net,0,sizeof(net));

Segundo, seu programa jamais irá se conectar se não houver algum socket esperando algum pedido de conexão vindo da porta especificada (no caso 31377). Mas do que eu li pra mim parece estar certo (não testei, nem compilei).

Na minha opinião faltou somente mesmo a parte do servidor que devia estar esperando alguma conexão.

Recomendo você dar uma pesquisada em sockets sobre essas funções: bind() accept () e listen() - você vai utilizar para o programa 'servidor'. Provavelmente você vai achar alguns exemplos bons no google sobre isso.

Espero que tenha ajudado em algo,

Abraço

Editado por blinkbl
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...