Я начинаю создавать простую чат-клиентскую серверную комнату сегодня, и я новичок в Python и сетевом подключении. Я сделал простой код на сервере что-то вроде этого:Ошибка сокета Python: невозможно преобразовать объект «tuple» в str неявно
HOST = socket.gethostname()
PORT = 21238
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
На клиенте:
HOST = socket.gethostbyaddr('54.201.33.XX') #54.201.33.XX is my EC2 public IP
PORT = 21237
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
Я уже работает мой код сервера на сервер, и когда я пытаюсь запустить код клиента на моем компьютере , Я получил ошибку:
Traceback (most recent call last):
s.connect((HOST, PORT))
TypeError: Can't convert 'tuple' object to str implicitly
Я нашел несколько примеров кодов, но неали все они используют локальный хост. Спасибо за помощь.
/////
На основании ответа @ Джон С.,. Мой код клиента должен быть
HOST = '54.201.33.XX'
Но еще время для подключения к серверу. Я уверен, что мой ip правильный.
См. Верхний ответ ниже. [Здесь хорошо, как о программировании сокетов в python] (http://docs.python.org/2/howto/sockets.html), вам не хватает команды socket.listen на вашем сервере. – Pykler
У меня есть метод прослушивания, но не показан здесь. Теперь проблема теперь похожа на настройку EC2.Я нашел, имя хоста сервера - это мой частный IP, выписав имя хоста, однако на стороне клиента я использую лобковый IP-адрес. Знаете ли вы, что мне делать с EC2? –
Я не уверен в EC2 и брандмауэрах, знаете ли вы, открыт ли этот порт. Самый простой способ тестирования - установить простой сервер и посмотреть, можете ли вы его получить. например 'python -m SimpleHTTPServer 21237' и перейдите по адресу http: //54.201.33.XX: 21237 и посмотрите, можете ли вы получить к нему доступ. – Pykler