#python #opencv
Вопрос:
Я пишу простой клиент и сервер Python, который отлично работает, передавая адрес сервера в моем коде, однако я хочу, чтобы пользователь мог ввести адрес сервера и выдать ошибку, если она неверна. Когда у меня есть приведенный ниже код, я получаю сообщение об ошибке от терминала «индекс списка вне диапазона».
server = (sys.argv[1])
serverAdd = (server, '65652') # server address and port number
Кто-нибудь может мне помочь с этим, пожалуйста.
Когда я запускаю свою клиентскую программу на python, я хочу иметь возможность вводить адрес для подключения и хранить его на сервере. Я запускаю программу непосредственно из командной строки, набрав programname.py. Сервер уже работает, прослушивая входящие соединения.
Комментарии:
1. И как ты это называешь?
2. разве вышесказанное не является вызовом командной строки?
3. Возможно, вы захотите попробовать распечатать список, чтобы убедиться, что там что-то есть.
print(sys.argv)
4. «введите адрес сервера»: В качестве параметра в командной строке или в stdin?
5. «это не вызов командной строки»: я не вижу здесь вызова командной строки. Пожалуйста, покажите, как вы назвали серверную программу.
Ответ №1:
С помощью этого Python:
import sys
print(sys.argv)
И вызывается с помощью этой команды:
>python q15121717.py 127.0.0.1
Я получаю этот вывод:
['q15121717.py', '127.0.0.1']
Я думаю, что вы не передаете аргумент в свой скрипт Python
Теперь вы можете слегка изменить свой код, чтобы сервер формировал командную строку или запрос для сервера, если ни один из них не передан. В этом случае вы бы посмотрели на что-то вроде этого:
if len(sys.argv) > 1:
print(sys.argv[1])
else:
print(input("Enter address:"))
Комментарии:
1. Я думаю, ты прав. Я пишу, думая, что sys.argv[1] будет вторым элементом и т. Д……. так что в случае выше sys.argv[‘127.0.0.1’]