“Índice de lista fuera de rango” cuando se usa sys.argv

Estoy escribiendo un simple cliente y servidor Python, que funciona bien al pasar la dirección del servidor dentro de mi código, sin embargo, quiero que el usuario pueda ingresar la dirección del servidor y lanzar un error si es incorrecto. Cuando tengo el código que aparece a continuación, aparece un mensaje de error del terminal “índice de lista fuera de rango”.

server = (sys.argv[1]) serverAdd = (server, '65652') # server address and port number 

Puede alguien ayudarme con esto, por favor.

Cuando ejecuto mi progtwig cliente en Python, quiero poder ingresar una dirección para conectarme y almacenarla en el servidor. Ejecuto el progtwig directamente desde la línea de comandos al escribir programname.py. El servidor ya se está ejecutando escuchando las conexiones entrantes.

Con este Python:

 import sys print(sys.argv) 

Y se invoca con este comando:

 >python q15121717.py 127.0.0.1 

Obtengo esta salida:

 ['q15121717.py', '127.0.0.1'] 

Creo que no estás pasando un argumento a tu script de Python

Ahora puede cambiar su código ligeramente para tomar un servidor desde la línea de comandos o solicitar un servidor cuando no se pasa ninguno. En este caso verías algo como esto:

 if len(sys.argv) > 1: print(sys.argv[1]) else: print(input("Enter address:"))