Was ist Sockel C?
"Socket C" ist ein Begriff, der manchmal verwendet wird, um den Vorgang des Schreibens von Socket-Code in der Programmiersprache C zu bezeichnen, und manchmal wird er verwendet, um auf die eigentliche Bibliotheksdatei zu verweisen, die die Implementierung für einige Socket-Funktionen enthält. Die eigentliche Socket-C-Bibliotheksdatei enthält Implementierungen für verschiedene Funktionen und Makros, die die von den Sprachbibliotheken bereitgestellten grundlegenden Socket-Funktionen bereitstellen, obwohl die Socket-C-Datei betriebssystemabhängig ist und auf einigen Systemen möglicherweise nicht implementiert wird. Das Schreiben von Socket-C-Code umfasst das Erstellen einer Schnittstelle mit einem Standard-Eingabe- und Ausgabeprotokoll, das als Socket bezeichnet wird, und das Verwenden dieser Schnittstelle zum Senden oder Empfangen von Informationen, normalerweise über ein Netzwerk oder über eine Hardware. Die Programmiersprache C soll portabel sein, die Socket-Programmierung basiert jedoch auf einigen systemspezifischen Funktionen auf niedriger Ebene. Daher kann es manchmal schwierig sein, Programme in C zu schreiben, die Sockets verwenden, aber auch die systemübergreifende Portabilität gewährleisten.
Es gibt drei Grundtypen von Sockets, die Socket C unterstützt. Das erste ist als Datagramm bekannt, das zweite ist ein Stream und das dritte ist der unformatierte Zugriff. Ein Datagramm ist eine Art Socket, der Informationen in kleinen Bündeln sendet, die als Pakete bezeichnet werden. Jedes Paket wird von einer Quelle mit Informationen zu dem Zielsocket gesendet, den es über ein Netzwerk sucht. Ein Datagramm kann eine effiziente Methode für die Kommunikation über Sockets sein und wird häufig zum Senden von E-Mails verwendet. Es ist jedoch auch verlustbehaftet, da garantiert kein Paket, das gesendet wird, am Zielsocket ankommt.
Ein Stream-Socket stellt eine Verbindung zu einem anderen Socket her und Informationen werden direkt zwischen den Sockets übertragen. Bei Verwendung in der Socket-C-Programmierung stellt dieser Socket-Typ sicher, dass alle gesendeten Daten auf der anderen Seite empfangen werden. Eine Komplikation ist jedoch, dass der Socket manchmal blockieren kann, was bedeutet, dass der Socket die Ausführung eines Prozesses stoppt, bis Informationen empfangen werden oder der Socket geschlossen wird, obwohl die Verwendung von Threads oder gespaltenen Prozessen dieses Problem in den meisten Fällen beheben kann. Der Raw-Socket-Zugriff wird bereitgestellt, um tatsächlich auf nahezu Hardware-Ebene eine Verbindung mit dem Gerät herzustellen, auf dem sich der Socket befindet.
Sockets werden üblicherweise in verschiedenen Formen für die Internetkommunikation verwendet. Die Hardware und Treiber, die die Netzwerkverbindung ermöglichen, variieren stark je nach Betriebssystem. Daher kann es schwierig sein, eine Socket-C-Bibliotheksdatei zu finden, die alle möglichen Kombinationen unterstützt. Aus diesem Grund enthält die Socket-C-Datei selbst sowie die Socket-Header-Datei häufig eine lange Liste bedingter Kompilierungsanweisungen, sodass sie auf verschiedenen Systemen unterschiedlich kompiliert werden.