I am writing a simple Python client and server, which works fine passing the server address within my code, however, I want the user to be able to enter the server address and throw and error if its incorrect. When I have the code below I get a error message from the terminal “list index out of range”.
server = (sys.argv[1]) serverAdd = (server, '65652') # server address and port number
Can anyone help me with this please.
When I run my client program in python I want to be able to enter a address to connect to and store that in server. I run the program directly from the command line by typing programname.py. The server is already running listening for incoming connections.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
With this Python:
import sys print(sys.argv)
And invoked with this command:
>python q15121717.py 127.0.0.1
I get this output:
['q15121717.py', '127.0.0.1']
I think you are not passing a argument to your Python script
Now you can change your code slightly to take a server form the command line or prompt for a server when none is passed. In this case you would look at something like this:
if len(sys.argv) > 1:
print(sys.argv[1])
else:
print(input("Enter address:"))
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0