Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como apagar um buffer de recepção do soquete em C
Ao receber dados de um socket em um buffer , é importante para detectar quando o soquete fecha para que você não esperar por pacotes adicionais por tempo indeterminado. A API do Windows Sockets ( Winsock ) fornece uma interface para o seu programa C para interagir com a pilha de protocolos TCP /IP subjacente. Coletar informações do servidor host, criar uma tomada , conecte-o ao hospedeiro e , em seguida, receber dados com a função de " recv " em um buffer até que você receba uma mensagem de erro ou "TCP FIN " . Instruções
1

Abra o arquivo C em um editor como o Microsoft Visual Studio Express.
2

Incluir os cabeçalhos necessários para trabalhar com soquetes e arquivos , adicionando o seguinte código na parte superior do seu arquivo: # include


# include

# 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 .

Anterior :

Próximo : No
  Os artigos relacionados
·Estrutura Seleção em Programação C 
·Quais são propriedades parciais 
·Como salvar dados no XCode para o iPhone 
·Como criar DropDownList com chave de pesquisa em C 
·Como corretamente Fechar um canal WCF 
·Como formatar datas e horas com Iostream 
·Como escrever código para o iPhone 
·Como Aleatória de Números binários de entrada em C +…
·Como verificar se duas matrizes têm os mesmos elemento…
·Como usar Int para obter o código de cor RGB 
  Artigos em destaque
·Como ler o número de bytes do arquivo em Linguagem Ass…
·Como fazer um buffer em C + + 
·Como fazer um padrão em C + + Código 
·Como usar a ferramenta Calculate para CPP 
·Como alterar Borland C + + Editar Telas 
·Como acessar podcasts de vídeo com o iPhone SDK 
·Como descobrir quais funções C estão disponíveis no…
·Como Animar em XNA 
·Substrings comuns em C 
·Como fazer uma pasta em C + + 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados