Aprire il file C in un editor come Microsoft Visual Studio Express .
2
Includere le intestazioni necessarie per lavorare con i socket e file aggiungendo il seguente codice nella parte superiore del file :
# include # include # include recuperare le informazioni host con la funzione " getaddrinfo " aggiungendo il seguente codice nella funzione : struct sentori addrinfo , * res ; int sfd ; char buffer [ 512 ] ; int nrecv ; memset (& suggerimenti, 0 , accenni sizeof ) ; hints.ai_socktype = SOCK_STREAM ; hints.ai_family = AF_UNSPEC ; getaddrinfo ( " www.server.com " , " 3500 " , e suggerimenti, e res ) ; sostituire l'indirizzo dell'host di " www.server.com " e il porto di "3500 " con le informazioni per il server di cui si è connessi . Il valore " SOCK_STREAM " indica la presa utilizzerà TCP , che è un collegamento bidirezionale affidabile creare un socket con le informazioni dell'host con l'aggiunta del seguente codice : . sfd = socket ( res - > ai_family , res - > ai_socktype , res - > ai_protocol ) ; Collegare la presa con la funzione di "collegamento", utilizzando il descrittore di file dal " funzione di presa " , con l'aggiunta del seguente codice : connect ( SFD , res - > ai_addr , res - > ai_addrlen ) ; Apri un file di scrittura con la funzione " fopen " aggiungendo il seguente codice : FILE * fp ; fp = fopen ( " file.rar " , " wb "); Ricevere le informazioni nel buffer con la funzione " recv " aggiungendo il seguente codice: num_written int = 0; while ( ( nrecv = recv ( SFD , di buffer , sizeof tampone , 0 ) ) > 0 ) { char * pBuf = tampone ; mentre ( nrecv > 0 ) { num_written = fwrite ( pBuf , sizeof (char ) , nrecv , fp ) ; pBuf + = num_written ; nrecv - = num_written ; } Il loop continueranno a ricevere informazioni fino a quando un errore , che restituisce un valore negativo , o fino a quando non riceve un messaggio di " TCP FIN " , che ha un valore di 0 . Salvare il file C , compilare ed eseguire il programma per ricevere informazioni dalla connessione socket .
3
4
5
6
7
}
8
Informazioni correlate
Programmazione © www.354353.com