# include
3
Rufen Sie die Host-Informationen mit dem " getaddrinfo "-Funktion , indem Sie den folgenden Code in Ihrer Funktion :
struct addrinfo Hinweise, * res ;
int sfd ;
char buffer [ 512 ] ;
int nrecv ;
memset ( & Hinweise , 0, sizeof Hinweise) ;
hints.ai_socktype = SOCK_STREAM ;
hints.ai_family = AF_UNSPEC ;
getaddrinfo ( " www.server.com ", " 3500 " , und Hinweise, & res) ;
Ersetzen Sie die Host-Adresse " www.server.com " und dem Hafen von " 3500 " mit den Informationen für den Server Sie sich verbinden . Die " SOCK_STREAM " Wert zeigt die Steckdose wird TCP , die eine zuverlässige Zwei-Wege- Verbindung verwenden
4
Erzeugt einen Socket mit dem Host-Informationen , indem Sie den folgenden Code: .
sfd = socket (res -> ai_family , res -> ai_socktype , res -> ai_protocol );
5
die Steckdose mit dem " connect "-Funktion , mit der Datei-Deskriptor vom " Socket "-Funktion , indem Sie den folgenden Code:
connect ( sfd , res -> ai_addr , res -> ai_addrlen );
6
öffnen eine Datei zum Schreiben die " fopen "-Funktion , indem Sie den folgenden Code :
FILE * fp ;
fp = fopen (" file.rar ", " wb ");
7 < p> Erhalten Sie Informationen in den Puffer mit dem " recv "-Funktion , indem Sie den folgenden Code:
int num_written = 0;
while (( nrecv = recv ( sfd , buffer, sizeof Puffer 0) ) > 0) {
char * pbuf = Puffer;
while ( nrecv > 0) {
num_written = fwrite ( pbuf , sizeof ( char) , nrecv , fp );
pbuf + = num_written ;
nrecv - = num_written ;
} }
Die Schleife wird weiterhin Empfangen von Informationen bis zu einem Fehler, der einen negativen Wert zurückgibt , oder bis er ein " TCP FIN " -Nachricht, die einen Wert von 0 hat .
8
Speichern Sie die C -Datei, kompilieren und ausführen das Programm , um Informationen aus der Socket-Verbindung zu erhalten.