Question

Je suis à la recherche http://docs.python.org/library/socketserver.html pour essayer de gérer les requêtes asynchrones avec le SocketServer en python. Au bas, il est un exemple, mais il n'a pas de sens. Il dit que vous utilisez le port 0 qui attribue un port inutilisé arbitraire. Mais comment savez-vous ce port à utiliser pour le client si elles ne sont pas dans le même programme? Je ne comprends pas tout à fait comment faire cela utile.

Était-ce utile?

La solution

Étant donné que le client est mis en œuvre 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 laisser vos clients savent sur quel port pour vous connecter, vous devrez peut-être savoir afin que vous pouvez ouvrir les pare-feu entre vos clients et votre serveur.

Autres conseils

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:)

Vous devez récupérer le port qui a été affecté à la socketserver une fois que le bind se fait: dans ce cas, ce sera probablement par ip, port = server.server_address

.

Le port arbitraire est tout simplement 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 aussi être un moyen de spécifier le port à se lier à.

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, » de sorte que la valeur de port de adresse_serveur est attribué par l'appel ThreadedTCPServer (). Il n'est pas nul. Plus tard, vous passez cette valeur port au client, qui l'utilise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top