2016-11-15 4 views
2

J'ai lu une définition de sockets comme "l'API la plus couramment utilisée pour les connexions UDP/TCP" (matériel scolaire). Cela me rend curieux de savoir s'il existe des alternatives, et je n'ai pas encore trouvé de solution. Je ne veux pas dire des couches d'abstraction ajoutées (telles que RPC ou RMI par exemple), ou des choses utilisant une autre pile réseau, mais en utilisant autre chose qui remplit le même rôle d'une manière différente.Alternatives aux sockets

Je pourrais avoir mal compris le rôle du socket aussi, je considérerais qu'il est adapté dans la couche OSI de session, ou peut-être le transport? Je ne suis pas vraiment sûr de ça.

Je ne prévois pas d'utiliser ces alternatives, et je comprends à quel point les prises sont pratiques, je me demandais juste.

Merci pour votre intérêt

+0

Copie possible de [Quelles sont les alternatives à la programmation de socket?] (Http://stackoverflow.com/questions/474386/what-are-the-alternatives-to-socket-programming) –

+0

J'ai vérifié cette discussion, mais 1) il est vieux et peut-être de nouveaux projets sont nés depuis 2) il est spécifique à C# (je me moque de la langue utilisée) 3) il semble que l'auteur était satisfait d'une couche d'abstraction ajoutée. J'ai précisé que je suis à la recherche de ** alternatives **, pas d'abstractions ajoutées (que j'ai déjà en tête). Merci de vérifier cependant :) –

+1

'en utilisant une pile réseau différente' mais c'est exactement ce que c'est. Une pile réseau différente avec une implémentation différente de par ex. TCP et différentes API. Il n'y a pas de raison fondamentale pour qu'il y ait des fonctions 'listen' et' bind'. – usr

Répondre

0

Si vous ne prévoyez pas d'utiliser une pile de réseau différent, je pense que la réponse est non. La raison derrière cela est que le socket est implémenté étroitement avec la pile réseau. TCP et UDP, par exemple, utilisent tous deux socket pour enregistrer les données non envoyées et les données reçues. Vous pouvez certainement implémenter certaines API pour lire des données et écrire des données dans ces tampons. Mais je ne vois aucun avantage à le faire, et ces API sont vraiment construites sur socket.

+0

Non, ils ne le sont pas. L'interface TLI n'a rien à voir avec l'interface Sockets. Et l'interface Socket est utilisée pour les sockets de domaine Unix ainsi que TCP et UDP, de sorte qu'elle n'est pas "étroitement couplée" à celle-ci. – EJP

+0

Je pense qu'A. Grenouilloux demande des outils de socket alternatifs qui peuvent fonctionner sur la même pile réseau. Dans le système Linux, TCP ou UDP place directement les données dans le tampon socket, donc si vous ne changez pas la pile réseau, comment pouvez-vous contourner cela? – user2760751