Comment faire des Sockets de Domaine Unix différencier entre plusieurs clients?

TCP a le tuple paires (IP Addr/port/type) de dire à un client à partir d'un autre. UDP passe le client IP et le port. Comment le domaine unix garder une trace des différents clients?

En d'autres termes, le serveur crée un socket lié à un certain chemin par exemple /tmp/socket. 2 ou plusieurs clients de se connecter à /tmp/socket. Ce qui se passe en dessous qui garde une trace des données à partir de client1 et client2? J'imagine que la pile réseau ne joue aucun rôle dans les sockets de domaine est donc le noyau fait tout le travail ici?

Est là un domaine unix format du protocole comme il y a un protocole IP format et le protocole TCP/UDP formats? Est le format de socket datagramme protocoles publié quelque part? Est tous les unix différents ou fait quelque chose comme POSIX uniformiser?

Merci pour tout éclairage. Je ne pouvais pas trouver toutes les informations que l'a expliqué. Chaque source juste glosé sur la façon d'utiliser les sockets de domaine.

  • Parler sur un domaine unix protocole est essentiellement d'e/s de fichier. à moins que les données que vous êtes en passant par le support contient l'identification de la source, il n'y a aucun moyen de dire le processus qui a envoyé une chaîne de caractères à travers.
  • cela devrait être une réponse
  • Peut-il être vrai? Si un serveur écrit des données le premier client qui lit obtient les données, peu importe si cela a été prévu pour que le client ou pas? Que de les rendre presque inutile.
  • Ce que vous décrivez semble douteuse. Dans la page 449 5ème alinéa de l' Linux Programming 2nd Edition Unleashed par Kurt Wall, et al, il est indiqué ainsi: ...with named pipes you cannot tell one process data from another. Using UNIX Domain sockets, you will get a separate session for each process.