Le fichier sock Linux fait référence à un fichier socket formé par programmation shell ; socket est une couche d'abstraction logicielle intermédiaire pour la communication entre la couche application et la famille de protocoles TCP/IP. Il s'agit d'un ensemble d'interfaces en mode conception ; un mode façade, qui cache la suite complexe de protocoles TCP/IP derrière l'interface Socket.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.
Que signifie le fichier sock Linux ?
Sock sous Linux fait généralement référence au fichier socket formé via la programmation shell Après avoir passé ls -l, le premier type de fichier affiché est : s.
Qu'est-ce que Socket ?
1. Socket :
Socket est originaire d'Unix, et l'une des philosophies de base d'Unix/Linux est que "tout est un fichier", qui peut être ouvert avec "open -> read/write write/read - > mode "fermé" pour fonctionner. Socket est une implémentation de ce mode. Socket est un fichier spécial, et certaines fonctions du socket sont des opérations sur celui-ci (lecture/écriture des E/S, ouverture, fermeture, pour parler franchement, Socket est la couche application et le protocole TCP/IP un intermédiaire). couche d'abstraction logicielle pour la communication familiale, qui est un ensemble d'interfaces. En mode conception, Socket est en fait un mode façade, qui cache la famille complexe de protocoles TCP/IP derrière l'interface Socket. Pour les utilisateurs, un ensemble d'interfaces simples permet à Socket d'organiser les données pour répondre aux exigences spécifiées.
Remarque : En fait, socket n'a pas de concept de couches. Il s'agit simplement d'une application du modèle de conception de façade, ce qui facilite la programmation. Il s'agit d'une couche d'abstraction logicielle. En programmation réseau, nous utilisons beaucoup de sockets.
2. Le descripteur de socket
est en fait un entier. Les trois poignées que nous connaissons le mieux sont 0, 1 et 2. 0 est une entrée standard, 1 est une sortie standard et 2 est une sortie d'erreur standard. 0, 1 et 2 sont représentés par des nombres entiers et les structures FILE * correspondantes sont représentées par stdin, stdout et stderr. L'API socket a été initialement développée dans le cadre du système d'exploitation UNIX, elle est donc différente des autres parties. du système. Les périphériques d’E/S sont intégrés ensemble. En particulier, lorsqu'une application crée un socket pour la communication Internet, le système d'exploitation renvoie un petit entier comme descripteur pour identifier le socket. L'application transmet ensuite le descripteur en tant que paramètre et appelle une fonction pour effectuer certaines opérations (telles que la transmission de données sur le réseau ou la réception de données entrantes).
Dans de nombreux systèmes d'exploitation, des descripteurs de socket et d'autres descripteurs d'E/S sont intégrés, afin que les applications puissent effectuer des opérations d'E/S de socket ou de lecture/écriture d'E/S sur des fichiers.
Lorsqu'une application souhaite créer un socket, le système d'exploitation renvoie un petit entier comme descripteur, et l'application utilise ce descripteur pour faire référence au socket. L'application qui nécessite des requêtes d'E/S demande au système d'exploitation d'en ouvrir une. document. Le système d'exploitation crée un descripteur de fichier pour que l'application puisse accéder au fichier. Du point de vue d'une application, un descripteur de fichier est un entier qu'une application peut utiliser pour lire et écrire des fichiers. La figure ci-dessous montre comment le système d'exploitation implémente un descripteur de fichier sous la forme d'un tableau de pointeurs pointant vers des structures de données internes.
Il existe un tableau séparé pour chaque système de programme. Pour être précis, le système gère une table de descripteurs de fichiers distincte pour chaque processus en cours d'exécution. Lorsqu'un processus ouvre un fichier, le système écrit un pointeur vers la structure de données interne du fichier dans la table de descripteur de fichier et renvoie la valeur d'index de la table à l'appelant. L'application n'a besoin que de mémoriser ce descripteur et de l'utiliser lors de manipulations ultérieures du fichier. Le système d'exploitation utilise ce descripteur comme index pour accéder à la table des descripteurs de processus et utilise le pointeur pour trouver la structure de données qui contient toutes les informations sur le fichier.Structure des données système pour les sockets :
1). Il existe une fonction socket dans l'API socket, qui est utilisée pour créer une socket. L'idée générale de la conception des sockets est qu'un seul appel système peut créer n'importe quelle socket, car les sockets sont assez générales. Une fois le socket créé, l'application doit appeler d'autres fonctions pour spécifier les détails spécifiques. Par exemple, appeler socket créera une nouvelle entrée de descripteur :
2). Bien que la structure de données interne du socket contienne de nombreux champs, la plupart des champs ne sont pas remplis une fois que le système a créé le socket. Une fois que l'application a créé le socket, elle doit appeler d'autres procédures pour remplir ces champs avant que le socket puisse être utilisé.Apprentissage recommandé : "
Tutoriel vidéo Linux"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!