Heim > Artikel > Betrieb und Instandhaltung > Was bedeutet eine Linux-Sock-Datei?
Linux-Sock-Datei bezieht sich auf eine durch Shell-Programmierung erstellte Socket-Datei. Socket ist eine zwischengeschaltete Software-Abstraktionsschicht für die Kommunikation zwischen der Anwendungsschicht und der TCP/IP-Protokollfamilie ein Fassadenmodus, der die komplexe TCP/IP-Protokollsuite hinter der Socket-Schnittstelle verbirgt.
Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.
Was bedeutet die Linux-Sock-Datei?
Sock bezieht sich unter Linux im Allgemeinen auf die durch Shell-Programmierung erstellte Socket-Datei. Nach der Übergabe von ls -l wird als erster Dateityp angezeigt: s.
Was ist Socket?
1. Socket-Socket:
Socket stammt aus Unix und eine der Grundphilosophien von Unix/Linux ist, dass „alles eine Datei“ ist, die mit „Öffnen -> Lesen und Schreiben/Lesen“ geöffnet werden kann -> schließen schließen"-Modus zu bedienen. Socket ist eine spezielle Datei, und einige Socket-Funktionen sind Operationen darauf (E/A lesen/schreiben, öffnen, schließen). Socket ist die Anwendungsschicht und das TCP/IP-Protokoll Software-Abstraktionsschicht für die Familienkommunikation, bei der es sich um eine Reihe von Schnittstellen handelt. Im Entwurfsmodus ist Socket eigentlich ein Fassadenmodus, der die komplexe TCP/IP-Protokollfamilie hinter der Socket-Schnittstelle verbirgt. Für Benutzer ist alles eine Reihe einfacher Schnittstellen, die es Socket ermöglichen, Daten so zu organisieren, dass sie dem angegebenen Protokoll entsprechen.
Hinweis: Tatsächlich verfügt Socket nicht über das Ebenenkonzept, sondern ist lediglich eine Anwendung des Fassadendesignmusters, was die Programmierung erleichtert. Es handelt sich um eine Software-Abstraktionsschicht. Bei der Netzwerkprogrammierung verwenden wir viele Sockets.
2. Der Socket-Deskriptor
ist eigentlich eine Ganzzahl. Die drei Handles, mit denen wir am besten vertraut sind, sind 0, 1 und 2. 0 ist die Standardeingabe, 1 ist die Standardausgabe und 2 ist die Standardfehlerausgabe. 0, 1 und 2 werden durch Ganzzahlen dargestellt, und die entsprechenden FILE *-Strukturen werden durch stdin, stdout und stderr dargestellt.
Die Socket-API wurde ursprünglich als Teil des UNIX-Betriebssystems entwickelt, daher unterscheidet sich die Socket-API von anderen Teile des Systems sind miteinander integriert. Insbesondere wenn eine Anwendung einen Socket für die Internetkommunikation erstellt, gibt das Betriebssystem eine kleine Ganzzahl als Deskriptor zur Identifizierung des Sockets zurück. Die Anwendung übergibt dann den Deskriptor als Parameter und ruft eine Funktion auf, um einen Vorgang abzuschließen (z. B. das Übertragen von Daten über das Netzwerk oder den Empfang eingehender Daten).
In vielen Betriebssystemen sind Socket-Deskriptoren und andere I/O-Deskriptoren integriert, sodass Anwendungen Socket-I/O- oder I/O-Lese-/Schreibvorgänge für Dateien ausführen können.
Wenn eine Anwendung einen Socket erstellen möchte, gibt das Betriebssystem eine kleine Ganzzahl als Deskriptor zurück und die Anwendung verwendet diesen Deskriptor, um auf den Socket zu verweisen. Die Anwendung, die E/A-Anfragen erfordert, fordert das Betriebssystem auf, einen zu öffnen. dokumentieren. Das Betriebssystem erstellt einen Dateideskriptor für den Zugriff der Anwendung auf die Datei. Aus Sicht einer Anwendung ist ein Dateideskriptor eine Ganzzahl, die eine Anwendung zum Lesen und Schreiben von Dateien verwenden kann. Die folgende Abbildung zeigt, wie das Betriebssystem einen Dateideskriptor als Array von Zeigern implementiert, die auf interne Datenstrukturen verweisen.
Für jedes Programmsystem gibt es eine eigene Tabelle. Genauer gesagt verwaltet das System für jeden laufenden Prozess eine separate Dateideskriptortabelle. Wenn ein Prozess eine Datei öffnet, schreibt das System einen Zeiger auf die interne Datenstruktur der Datei in die Dateideskriptortabelle und gibt den Indexwert der Tabelle an den Aufrufer zurück. Die Anwendung muss sich diesen Deskriptor nur merken und ihn bei der zukünftigen Bearbeitung der Datei verwenden. Das Betriebssystem verwendet diesen Deskriptor als Index für den Zugriff auf die Prozessdeskriptortabelle und verwendet den Zeiger, um die Datenstruktur zu finden, die alle Informationen über die Datei enthält.
Systemdatenstruktur für Sockets:
1) In der Socket-API gibt es eine Funktion socket, die zum Erstellen eines Sockets verwendet wird. Die allgemeine Idee des Socket-Designs besteht darin, dass ein einzelner Systemaufruf jeden Socket erstellen kann, da Sockets recht allgemein sind. Sobald der Socket erstellt ist, muss die Anwendung andere Funktionen aufrufen, um die spezifischen Details anzugeben. Wenn Sie beispielsweise den Socket aufrufen, wird ein neuer Deskriptoreintrag erstellt:
2). Obwohl die interne Datenstruktur des Sockets viele Felder enthält, werden die meisten Felder nicht ausgefüllt, nachdem das System den Socket erstellt hat. Nachdem die Anwendung den Socket erstellt hat, muss sie andere Prozeduren aufrufen, um diese Felder zu füllen, bevor der Socket verwendet werden kann.
Empfohlenes Lernen: „
Linux-Video-TutorialDas obige ist der detaillierte Inhalt vonWas bedeutet eine Linux-Sock-Datei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!