Der Socket verbindet die Programmierung in C als die beiden Knoten in einem Netzwerk, die eine Verbindung herstellen und miteinander interagieren können. Der andere Socket (Knoten) erreicht den ersten Socket, um eine Verbindung herzustellen, während der erste Socket auf einem bestimmten Anschluss an einer IP hört. Eine Socket -Verbindung dient als Kommunikationskanal zwischen zwei Parteien zum Senden von Nachrichten. Wir werden diesen Leitfaden schreiben, um Ihr Verständnis der Socket -Verbindung mithilfe des C -Programmierparadigms erheblich zu verbessern. Wir senden Nachrichten zwischen dem Server und dem Client, indem wir das C -Programmierkonzept in diesem Handbuch verwenden.
Beispiel:
Die in diesem Leitfaden vorgestellten Beispiele werden auf Ubuntu 20 durchgeführt.04. So machen Sie diese Beispiele mit Ubuntu 20.04 muss der GCC -Compiler installiert werden. Nach der Installation des GCC werden einige C -Codes geschrieben, um die Verwendung des „Socket Connect“ zu demonstrieren,. In diesem Beispiel werden wir zwei verschiedene Codedateien erstellen, einer ist der clientseitige Code und der andere der serverseitige Code. Wir verbinden beide Dateien und senden Nachrichten zwischen ihnen.
Serverseitiger Code
Wir verwenden den Texteditor, der mit Ubuntu 20 geliefert wird.04. Zuerst fügen wir die verschiedenen Header -Dateien hinzu, wie im Screenshot gezeigt. Diese Header-Dateien sind für diesen Socket-Connect-Code von wesentlicher Bedeutung. Nach diesen Header -Dateien definieren wir den Port "8080". Danach verwenden wir die Funktion „main ()“ und haben die verschiedenen lokalen Variablen in dieser Funktion „main ()“. Wir zieren einen „Puffer []“ der Größe „1024“ unter diesen Variablen. Der Puffer wird hier zum Senden und Empfangen der Daten verwendet.
Dann erstellen wir die Sockel in der Anweisung "if". In dieser Sockel geben wir die IP -Adresse als „AF_Inet“ an. Der Verbindungstyp ist "Sock_stream", der hier als zweiter Parameter übergeben wird und den „0“ als dritter Parameter übergeben wird. Wenn die angegebene Bedingung erfüllt ist, wird die Anweisung unter dieser Anweisung „If“ ausgeführt, in der wir die Anweisung „Perror“ eingeben, die den Fehler auf dem Terminal druckt. Dann befestigen wir diesen Socket an Port „8080“.
Wir verwenden das "Setsocketopt". Dies erleichtert die Änderung der Parameter für den Socket, auf den sich der Dateideskriptor -Sockfd bezieht. Obwohl dies vollständig optional ist, fördert dies die Adresse und die Portrückverwendung. Fehler wie „bereits verwendete Adresse“ werden vermieden. Danach geben wir die Adresse für den Socket an. Es ist in der Header -Datei definiert. Für die „Adresse“.SIN_PORT ”, wir verwenden die„ Htons “, mit denen die Portnummer in eine Host -Byte -Bestellung umgewandelt wird.
Dann haben wir die Funktion "Bind ()" in der Anweisung "if". Diese Funktion „Bind ()“ wird verwendet, um einen Socket an eine Adresse zu binden. Es enthält drei Parameter. Danach erstellen wir eine "Valread" -Variable und setzen die "read ()" Fuktion ein. Anstelle des von Socket gelieferten ersten Dateideskriptor. Wir haben die Anweisung „Printf“, mit der die Daten angezeigt werden. Dann verwenden wir die Funktion "send ()". Diese Funktion wird verwendet, um die Daten auf den Sockeln zu senden.
Dann haben wir wieder die Anweisung "printf" und die Funktion "close ()". Dies wird verwendet, um den Sockel zu schalten und alle Ressourcen freizugeben, die der Steckdose zugeteilt werden. Die Funktion „Short Down ()“ ist auch hier, um die Verbindung der Sockel zu schalten. Am Ende haben wir eine Anweisung "Return 0".
Client-Seite-Code
Dieser Code ähnelt dem vorherigen Servercode. Wir fügen die verschiedenen Header -Dateien ein, die für diesen Code erforderlich sind. Dann deklarieren wir die "Haupt" -Funktion. Innerhalb dieser Funktion „main ()“ haben wir verschiedene lokale Variablen. Wir stellen nach diesen Variablen einen „Puffer []“ der Größe „1024“ ein. Die Datenübertragung und -empfang verwenden in diesem Fall den Puffer. Wir erstellen die Sockel in der Anweisung "if". Die IP -Adresse für diesen Socket lautet "AFE inet". Der Verbindungstyp für diesen Socket ist „Sockenstream“, der als zweiter Parameter und „0“ als dritter Parameter geliefert wird.
Danach geben wir die Adressen nach der Erstellung der Steckdose an. Dann verwenden wir diese Adresse in der Anweisung "if" und haben hier die "printf". Das erste Argument, das wir haben, ist der „Socket -Dateideskriptor“, das zweite Argument ist die Adresse des Hosts, und das dritte Argument ist die Adressgröße. Die Funktion "send ()" wird dann verwendet. Die über die Sockets gesendeten Daten werden mit dieser Funktion gesendet. Der Befehl "printf" und "close ()" sind dann noch einmal vorhanden. Dies geschieht, um den Socket zu schließen und alle ihm zugewiesenen Ressourcen freizugeben.
Ausgang:
Wie von uns von zwei unabhängigen Codes erwartet wird, müssen wir zwei separate Terminals starten, um dieses Ziel zu erreichen. Der clientseitige Code wird auf einem Terminal ausgeführt, während der serverseitige Code auf dem anderen Terminal ausgeführt wird. Im ersten Terminal geben wir den folgenden Befehl ein, um unseren serverseitigen Code zu kompilieren:
Durch Ausführen des folgenden Befehls im zweiten Terminal kompilieren wir den clientseitigen Code auf die gleiche Weise:
Wir führen beide Codes einzeln aus, wenn sie zusammengestellt werden. Da der serverseitige Code jedoch die Verbindungsanforderungen überwachen soll, müssen wir ihn zuerst ausführen. Der folgende Befehl kann verwendet werden, um den serverseitigen Code auszuführen:
Danach kann der folgende Befehl verwendet werden, um den clientseitigen Code auszuführen:
Nachdem beide Befehle in beiden Terminals gleichzeitig verwendet wurden, erhalten wir diese Ausgabe, die im Folgenden angezeigt wird:
Abschluss
Wir haben diesen Leitfaden vorgestellt, um Ihnen dabei zu helfen, die „Socket Connect“ in der C -Programmierung zu verstehen. Wir haben dies ausführlich erläutert und Beispiele als Ausgabe angegeben. Sie können die Daten zwischen einem Client und dem Server effektiv senden und empfangen, nachdem Sie das Beispiel in diesem Handbuch durchlaufen haben. Dieses Beispiel dient nur als einfache Abbildung, wie die Sockets mit der C -Programmierung verbinden und wie die Daten gesendet werden.