Sockets sind eine Möglichkeit der Übertragung von Daten über die Standards für eine Unix-Datei- Deskriptoren . Ein Unix- Datei-Deskriptor ist eine ganze Zahl , die mit einer offenen Datei zugeordnet ist , und ermöglicht dem Betriebssystem , um darauf zuzugreifen . Unter dem Unix OS ist alles eine Datei, auch Netzwerkverbindungen. Sockets sind für Internet-Kommunikation spezialisiert. Wenn Sie mit Steckdosen in Ihrem Programm haben, müssen Sie eine Reihe von Bytes , Daten zu empfangen . Dies wird als ein Puffer . Die C + + -Funktion " recv ()" ermöglicht es Ihnen, einen Puffer für den Empfang von Daten von einem Socket . Things You Need
C + + Integrated Development Environment (IDE ) wie Eclipse CDT
C + + Compiler, zeigen eine solche GCC
Weitere Anweisungen
1
laden werde C + + IDE , indem Sie auf das Programmsymbol . Wenn sie geöffnet wird , wählen Sie " File /New /Project" und wählen Sie " C + + -Projekt" , um eine neue C + +-Projekt zu erstellen. Eine leere Quellcode -Datei wird im Texteditor Teil der IDE
2
Fügen Sie die folgenden zwei "include" Richtlinien zum Anfang der Quellcodedatei : . # Include < sys /types . h> # include
3 Machen Sie sich mit der Funktion Signatur für " recv (). " die Elemente in Klammern genannt werden Parameter , und sie sind in der Regel verwendet als Mittel zur Eingabe von Daten in einer Funktion. Der erste Parameter ist " int s ", die dem ganzzahligen Kennung für den Socket Sie wollen die Daten empfangen bezieht . Der zweite Parameter ist ein Zeiger auf den Puffer, der alle empfangenen Daten speichert , und der dritte Parameter die Länge der Puffer in Bytes. Die vierte und letzte Parameter ist der "flags " Parameter , die das Verhalten der Funktion verändern können . Der Rückgabetyp für diese Funktion ist " ssize_t ," und es gibt die Anzahl der empfangenen Bytes , oder "-1" , wenn ein Fehler auftritt.
Ssize_t recv ( int s, void * buf , size_t len , int flags) ;
4
erstellen Sie ein Array von "char" -Datentypen , die garantiert mindestens ein Byte lang sein werden . Die genaue Länge hängt von den Besonderheiten des Systems , aber im Allgemeinen ein "char" ist ein Byte, oder acht Bits , lang. Schreiben Sie die folgenden , um ein Array von 256 "char" Datentypen deklarieren:
char buffer [ 256];
5
Erstellen Sie eine Variable , die speichert die Anzahl der empfangenen Bytes . Dies ist der Wert von der Funktion zurückgegeben " recv ()," und es ist nützlich für die Bestimmung , wenn der Puffer fast voll ist , oder wenn ein Fehler aufgetreten ist . Schreiben Sie die folgenden , um dieses variable :
int empfangen = 0;
6
der Speicherort im Netzwerk über eine Socket- Verbindung . Ein Socket ist nur eine Zahl , und kann wie folgt erklärt werden :
int -Buchse;
7
Rufen Sie die Funktion " recv ( ) " mit den deklarierten Variablen so weit. Um " recv ( ) " mit seinen Standard-Verhalten verwenden, stellen Sie das Flag auf
empfangen = recv ( Socket , buffer, sizeof ( buffer) , 0) "0". ;
8 < p> Kompilieren und starten Sie das Programm. Das Programm richtet einen Bereich im Speicher und bereitet es für den Empfang von Daten von einem Socket . Es ruft dann die " recv ()" -Funktion, die Daten empfängt aus der Steckdose.