Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como Escrever um Programa de Transferência de soquete Console Simple File
Criar um programa de tomada simples que transfere um arquivo entre dois servidores é uma ótima maneira de ampliar seu conhecimento de programação de soquetes . A tomada liga-se a uma porta específica e se conecta a outra tomada para criar uma conexão de mão dupla. Para enviar um arquivo , você deve criar um socket, ligá-la , ouvir para uma conexão, aceitar uma conexão e , em seguida, enviá-lo para o outro servidor - utilizando a função " sendfile " . Instruções
1

Abra o arquivo C em seu ambiente de desenvolvimento integrado preferido.
2

Incluir os arquivos de cabeçalho para acessar todos os tipos de dados necessários e funções , adicionando o seguinte código na parte superior do seu arquivo:

# include # include # include # include # include < sys /sendfile.h > # include # include # include # incluem # include < stdio . h> # include
3

Declarar e inicializar as variáveis ​​necessárias para a tomada de transferência de arquivos, adicionando o seguinte código na parte superior de sua principal função :

int port = 4455 ; int sock_fd ; int sock_desc ; int file_fd ; struct Dados stat_buf ; off_t file_offset = 0; carbonizar nome_arquivo [ PATH_MAX ]; struct addrinfo addr , * rs ; struct sockaddr_in addr1 ; int addrlen ; < br >

strcpy ( nome_arquivo , " myfile.txt ");
4

Inicializar as estruturas de endereço, adicionando o seguinte código:

memset (& addr , 0 , sizeof addr ); addr.ai_family = AF_UNSPEC ; addr.ai_socktype = SOCK_STREAM ; addr.ai_flags = AI_PASSIVE ;

getaddrinfo (NULL , porto, & addr , & rs );
5

Criar um novo socket, socket e configurá-lo para ouvir todas as conexões de entrada , adicionando o seguinte código:

sock_fd = socket ( rs -> ai_family , rs -> ai_socktype , rs -> ai_protocol ); bind ( sockfd , rs -> ai_addr , rs -> ai_addrlen ); ouvir ( sock_fd , 1);
6

Criar um loop "while" e esperar para uma conexão de entrada , digitando o seguinte código:

while ( true) { sock_desc = aceitar ( sock_fd , (struct sockaddr *) & addr1 , e addrlen );
7

Abra o arquivo que deseja transferir e enviá-lo com a função " sendfile " , adicionando o seguinte código:

file_fd = open ( nome_arquivo , O_RDONLY ); fstat ( file_fd , e stat_buf );

file_offset = 0; sendfile ( sock_desc , file_fd , e file_offset , stat_buf.st_size );
8

Feche o arquivo , descritor de socket ea tomada uma vez que você é feito o envio do arquivo , adicionando o seguinte código:

perto ( file_fd ) , perto ( sock_desc );}

perto ( sock_fd );
9

Salve o arquivo de origem . Compilar e executar o programa para enviar um arquivo usando um soquete.

Anterior :

Próximo : No
  Os artigos relacionados
·Como calcular um Transpor Matriz em C + + 
·Como ocultar os botões no Xcode 
·Como fazer um C + + Janela Principal Sem uma barra de t…
·Como fazer um Stickman em C + + 
·As vantagens de LINQ 
·Como link COBOL e C juntos no z /OS 
·Quais são Atributo Chaves 
·Como desenhar linhas no Visual C + + 
·A conversão de um valor negativo para positivo em C + …
·CSharp Controles para DataGridView 
  Artigos em destaque
·Como depurar C + + Tags 
·Como criar um aplicativo para iPhone para um RSS em um …
·Como fazer uma String para aceitar Spaces 
·Tipos de erros cadeia de formato 
·Como Fazer um Botão Sair em C + + 
·Como remover SQLite em C 
·Como usar o Vector3 Operador Ogre 
·Como ocultar o subexibição em um iPhone 
·Como externo um membro estático 
·Como mover um objeto com Arrastar no XCode 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados