Pregunta

http://docs.python.org/library/socketserver.html para tratar de atender las peticiones asincrónicas con la socketserver en Python. En la parte inferior hay un ejemplo, pero no tiene sentido. Se dice que utiliza el puerto 0, que asigna un puerto no utilizado arbitraria. Pero, ¿cómo saber qué puerto va a utilizar para el cliente si no están en el mismo programa? Yo no entiendo muy bien cómo hacer esto, tiene utilidad.

¿Fue útil?

Solución

Dado que el cliente se implementa en el mismo guión que el servidor, se conoce el puerto. En un escenario del mundo real, se debe especificar un puerto para su demonio. Además de dejar que sus clientes saben en qué puerto para conectarse, puede que también necesite saber para que pueda abrir cortafuegos entre los clientes y el servidor.

Otros consejos

En el ejemplo se ha vinculado, que están alcanzando el puerto:

# Port 0 means to select an arbitrary unused port
HOST, PORT = "localhost", 0

server = ThreadedTCPServer((HOST, PORT), ThreadedTCPRequestHandler)
ip, port = server.server_address

Sin embargo, realmente debería estar buscando en www.twistedmatrix.com si usted es serio acerca de cómo escribir un manejo asíncrono:)

Es necesario para recuperar el puerto que se asigna a la socketserver una vez que el bind se hace: en este caso, éste será probablemente a través ip, port = server.server_address

.

El puerto arbitrario es sólo por si desea crear un servidor sin especificar un puerto:. El sistema operativo asignará un puerto disponible

Por supuesto, también debe haber una forma de especificar qué puerto se una a.

server = ThreadedTCPServer((HOST, 0), ThreadedTCPRequestHandler)
ip, port = server.server_address

...

client(ip, port, "Hello World 1")

El valor del puerto 0 dice "No me importa lo que el número de puerto que es", por lo que el valor de la port dirección_servidor es asignado por la llamada ThreadedTCPServer (). No es cero. Posteriormente, se pasa ese valor port al cliente, que lo utiliza.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top