# include
3
Recuperar as informações do host com a função " getaddrinfo " , adicionando o seguinte código na sua função:
struct addrinfo dicas , * res ;
int sfd ;
de char buffer [ 512] ;
int nrecv ;
memset (& sugestões, 0 , sugestões sizeof );
hints.ai_socktype = SOCK_STREAM ;
hints.ai_family = AF_UNSPEC ;
getaddrinfo ( " www.server.com ", " 3500 " , e sugestões , & res ) ;
Substitua o endereço do host de " www.server.com " e do porto de " 3500 ", com as informações para o servidor que você está se conectando. O valor " SOCK_STREAM " indica o soquete vai usar TCP , que é uma conexão bidirecional confiável
4
Criar um soquete com as informações do host , adicionando o seguinte código: .
sfd = socket (res -> ai_family , res -> ai_socktype , res -> ai_protocol );
5
Ligue a tomada com a função "connect" , usando o descritor de arquivo a partir do " função socket " , adicionando o seguinte código:
conectar ( sfd , res -> ai_addr , res -> ai_addrlen );
6
Abra um arquivo para gravar a com a função " fopen " , adicionando o seguinte código:
FILE * fp ;
fp = fopen ( " file.rar ", " wb ");
7
Receba informações no buffer com a função de " recv " , adicionando o seguinte código:
int num_written = 0;
while (( nrecv = recv ( sfd , buffer, sizeof tampão , 0)) > 0) {
char * pBuf = buffer;
while ( nrecv > 0) {
num_written = fwrite ( pBuf , sizeof (char ) , nrecv , fp );
pBuf + = num_written ;
nrecv - = num_written ;
}
}
O loop continuará recebendo informações até que um erro , que retorna um valor negativo, ou até que ele recebe uma mensagem "TCP FIN " , que tem um valor de 0.
8
Salve o arquivo C, compilar e executar o programa para receber informações da conexão de soquete .