SetSockopt -Funktion in c

SetSockopt -Funktion in c
„Eine SetSockopt () -Funktion ist ein sehr wichtiges Konzept im Zusammenhang mit der Vernetzung in der C -Sprache. Es ist eine sehr nützliche Funktion im Zusammenhang mit der Steckdose. Um über diese Funktion zu wissen, müssen wir zunächst das Konzept einer Steckdose kennen.

Ein Socket ist eine integrierte Software, die das Gesamtnetzwerk steuert und als Endpunkt für das Senden und Empfangen von Paketen (Daten) im gesamten Netzwerk behandelt wird. Es verhält sich wie ein Kommunikator zwischen zwei Knoten in denselben oder verschiedenen Netzwerken.

setSockopt () ist eine Funktion in der Socket -Programmierung (Anwendungsprogramm), um diese Kommunikation zu steuern und Pufferraum, Zeitsteuerung und im Bereich des Rundfunks zuzuweisen.”

Eigenschaften der SetSockopt () -Funktion

1. Header -Datei: setSockopt () -Funktion ist eine vordefinierte Funktion, die Definition in einer Header -Datei in der C -Bibliothek mit dem Namen Header -Datei geschrieben ist.

2. Syntax: int setSockopt (int Socket, int Level, int option_name, const void *option_value, socketlen_t option_len);

3. Rückgabe: Wenn setSockopt () die Funktion ordnungsgemäß ausgeführt wird, gibt sie Null zurück. Aber erfolglose Ausführung der Funktion SetSockopt () gibt 0 zurück. 0. Dafür gibt es einen Ganzzahlwert zurück.

Anwendung der Funktion SetSockopt ()

setSockopt () -Funktion ist API. Mit dieser API können wir unseren Server festlegen oder unseren Server die Option zur Verfügung stellen, um denselben Teil anzuhören.

Beispiel 1

Informieren Sie uns über die Implementierung der Funktion SetSockopt () in diesem Programmierbeispiel.

#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
int main ()

int x1, x2, x3, x4;
if ((x1 = Socket (AF_INET, SOCK_STREAM, 0)) < 0 )

Perror ("das Gerät überprüfen:");
exit (0);

x4 = sizeof (x2);
if (getockopt (x1, ipprooto_tcp, tcp_maxseg, (char*) & x2, & x4) < 0 )

Perror ("Fehler aufgetreten aufgrund des Funktionsfehlers:");
exit (0);

printf ("\ n Der wahrscheinliche Wert von x2 ist: = %d", x2);
x3 = 12324;
if (setSockopt (x1, Sol_socket, so_sndbuf, (char*) & x3, sizeof (x3)) < 0 )

Perror ("die Chancen, nicht zu antworten");
exit (0);

x4 = sizeof (x3);
if (getockopt (x1, Sol_socket, so_sndbuf, (char*) & x3, & x4) < 0 )

Perror ("Funktion reagiert nicht richtig:");
exit (0);

printf ("\ nThe Pufferwert ist = %d \ n", x3);
Rückkehr 0;

Ausgang

Erläuterung

Um dieses Programm auszuführen, müssen wir eine Header -Datei in unseren Quellcode wie, und einbeziehen, und . Zunächst erstellen wir einen Socket, um eine Standardfunktion aufzurufen Steckdose () und übergeben Sie einige Standardparameter in seine Klammung. Jetzt werden wir die Funktion von Getockopt () aufrufen, um den aktualisierten Wert für einen Socket zu übernehmen und in einer Variablen namens zu speichern x2. Jetzt setzen wir den Wert auf den Socket, indem wir die Funktion setSockopt () aufrufen. Danach werden wir erneut den Wert für die Socket im Puffer über die Funktion von Getockopt () überprüfen und ihren Wert ausdrucken.

Beispiel-2

Hier sehen wir ein weiteres Beispiel für die Funktion setSockpt ().

#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
#enthalten
int main (void);
int main ()

int x1;
int x2;
Socklen_t x3 = sizeof (x2);
/ * Erstellen Sie die Funktionsdefinition */
if ((x1 = Socket (Pf_inet, Sock_stream, ipproTo_tcp))) < 0 )

Perror ("Erstellen des Geräts:");
exit (exit_failure);

/ * Überprüfen Sie den Zustand des funktionalen Geräts */
if (getockopt (x1, Sol_socket, so_keepalive & x2, & x3) < 0 )

Perror ("Funktion kann nicht richtig reagieren:");
schließen (x1);
exit (exit_failure);

printf ("Der Zustand der Antwortfunktion ist: %s \ n", (x2 ? " AN AUS " ) ) ;
/ * Aktivieren Sie die Funktionsoption */
x2 = 1;
x3 = sizeof (x2);
if (setSockopt (x1, Sol_Socket, so_keepalive & x2, x3) < 0 )

perror ("etwas Fehler erkennen");
schließen (x1);
exit (exit_failure);

printf ("Dieser Funktionswert wird installiert: \ n");
/ * Überprüfen Sie den Status erneut *////
if (getockopt (x1, Sol_socket, so_keepalive & x2, & x3) < 0 )

Perror ("Ein anderes Mal prüfen:");
schließen (x1);
exit (exit_failure);

printf ("Überprüfen der laufenden Antwort: %s \ n", (x2 ? " AN AUS " ) ) ;
schließen (x1);
exit (exit_success);
Rückkehr 0;

Ausgang

Erläuterung

In diesem Programm -Beispiel werden wir zunächst eine Socket mit Hilfe der Socket () -Funktion () erstellen und einige Argumente in seiner Klammern übergeben, um den Sockel zu erstellen. Danach werden wir die Funktion von getockopt () aufrufen, um die Socket -Zustände zu überprüfen. Jetzt werden wir die Funktion setSockopt () aufrufen, um den Status im aktiven Modus festzulegen. Jetzt werden wir erneut den Status des Sockels überprüfen, um die Funktion von Getockopt () auszuführen und den aktuellen Status der Sockel mithilfe zu drucken "An oder aus" Modus. Tatsächlich möchten wir mit Hilfe dieses Programms verstehen, ob der Keepalive -Zustand der Steckdose aktiv ist oder nicht.

Abschluss

Aus den Merkmalen, der Implementierung und dem Programmierbeispiel der Funktion SetSockopt () ist es uns sehr gut klar, dass diese Funktion bei der Socket auf den verschiedenen Netzwerkebenen sehr hilfreich ist. Mit Hilfe der SetSockopt () -Funktion können wir verschiedene Dinge wie die Manipulation der Länge des Sendens und Empfangens von Puffer, deren Zeitüberschreitungen usw. machen. Es bietet uns auch die Einrichtung des Multicasting.