Je cherche http://docs.python.org/library/socketserver.html pour gérer des requêtes asynchrones avec le serveur sockets en python. Tout en bas, il y a un exemple, mais cela n'a aucun sens. Il dit que vous utilisez le port 0 qui attribue un port arbitraire inutilisé. Mais comment savez-vous quel port utiliser pour le client s'ils ne sont pas dans le même programme? Je ne comprends pas très bien comment rendre cela utile.Python: serveur asynchrone tcp socketserver
Répondre
Comme le client est implémenté dans le même script que le serveur, le port est connu. Dans un scénario réel, vous devez spécifier un port pour votre démon. En plus de permettre à vos clients de savoir sur quel port se connecter, vous devrez peut-être également savoir que vous pouvez ouvrir des pare-feu entre vos clients et votre serveur.
Vous devez récupérer le port attribué au socketserver
une fois le bind
terminé: dans ce cas, cela se fera probablement par ip, port = server.server_address
.
Le port arbitraire est juste si vous voulez créer un serveur sans spécifier un port: le système d'exploitation attribuera un port disponible.
Bien sûr, il doit également y avoir un moyen de spécifier le port à lier.
Dans l'exemple que vous avez lié, ils sont aller chercher le port:
# Port 0 means to select an arbitrary unused port
HOST, PORT = "localhost", 0
server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
ip, port = server.server_address
Cependant, vous devriez vraiment être à la recherche www.twistedmatrix.com si vous êtes sérieux au sujet de l'écriture manipulation async :)
server = ThreadedTCPServer((HOST, 0), ThreadedTCPRequestHandler)
ip, port = server.server_address
...
client(ip, port, "Hello World 1")
La valeur PORT 0 dit « Je me fiche de ce numéro de port, il est, » si port
valeur du adresse_serveur est attribué par l'appel ThreadedTCPServer(). Ce n'est pas zéro. Plus tard, vous transmettez cette valeur port
au client, qui l'utilise.
- 1. TCP/IP asynchrone côté serveur
- 2. Client TCP Callback asynchrone
- 3. Application simple de chat TCP asynchrone [C#]
- 4. scala SocketServer
- 5. Boost.Asio Client TCP asynchrone et multi-threading
- 6. Client QT C++ tcp avec serveur python tordu
- 7. C# Serveur TCP Aide
- 8. Serveur TCP (php)
- 9. Comment définir le délai d'un SocketServer en Python?
- 10. Arrêt d'un serveur TCP asynchrone sur un thread séparé en C#
- 11. Exemple TCP application client/serveur
- 12. Serveur UDP asynchrone avec Twisted et QT4
- 13. Programmation asynchrone en Python Twisted
- 14. Problème avec le serveur TCP dans Twisted
- 15. Python TCP Server, écrire aux clients?
- 16. Serveur Python simple
- 17. Bon protocole basé sur TCP asynchrone pour les jeux non-temps réel?
- 18. serveur java pour gérer plusieurs connexions tcp
- 19. Très simple C++ TCP Echo serveur
- 20. construire un serveur tcp pour tester asihttp
- 21. Numéro de client du serveur TCP
- 22. C#: question de serveur TCP simple
- 23. Accepter() fonction; Serveur tcp simple en C
- 24. C# tcp problème de client serveur
- 25. Communication client-serveur Apache MINA Java TCP
- 26. java client tcp et le serveur
- 27. Serveur et client TCP/IP C#
- 28. DIRECTOR "Socket serveur/client TCP/IP"
- 29. Problème de communication client/serveur .NET TCP
- 30. C# Serveur et client TCP/IP
+1. Twisted est le chemin à parcourir. –