Форум сайта python.su
Очень нужна помощь. Уже не знаю, что и думать. Работаю с сокетами. Хочу написать код, чтобы можно было ввести IP-адрес, к которому потом можно было подключиться. Код такой:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ipaddress
addr = input (“адрес ИП-адрес :”) # Ввод ИП-адреса - выдаёт ошибку
int_port = input (“введите PORT хоста: ”) # Ввод порта - нормально работает
import socket
sock2 = socket.socket()
sock2.connect((addr,int_port)) # здесь в скобках ИП-адрес и порт хоста, к которому подключиться нужно
Ошибка такая:
адрес ИП :192.168.0.86
Traceback (most recent call last):
File “./sock-client.py”, line 6, in <module>
str_addr = input (“адрес ИП :”)
File “<string>”, line 1
192.168.0.86
^
SyntaxError: invalid syntax
Офлайн
во втором питоне используйте raw_input для ввода нечисловых значений
Офлайн
Спасибо Вам огромное. Помогло. Тогда ещё вопрос. В третьем Питоне как быть? Там вот такая ошибка:
адрес ИП :192.168.0.86
введите PORT хоста: 9090
Traceback (most recent call last):
File “./sock-client.py”, line 12, in <module>
sock2.connect((int_addr,int_port))
TypeError: an integer is required (got type str)
Error in sys.excepthook:
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/apport_python_hook.py”, line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File “/usr/lib/python3/dist-packages/apport/__init__.py”, line 5, in <module>
from apport.report import Report
File “/usr/lib/python3/dist-packages/apport/report.py”, line 12, in <module>
import subprocess, tempfile, os.path, re, pwd, grp, os, time
File “/usr/lib/python3.5/tempfile.py”, line 184, in <module>
from random import Random as _Random
File “/home/test/programming/Python/random.py”, line 3
print random.randint(1,10)
^
SyntaxError: invalid syntax
Original exception was:
Traceback (most recent call last):
File “./sock-client.py”, line 12, in <module>
sock2.connect((int_addr,int_port))
TypeError: an integer is required (got type str)
Офлайн
приводить строку к целочисленному
int(“6254654”)
Офлайн
то есть как именно? и как потом обратно?
вот так делать:
int(addr) = input (“адрес ИП :”)
port = input (“введите PORT хоста: ”)
sock2.connect((addr,port))
Напишите, пожалуйста, точнее. Я не совсем понимаю.
Офлайн
если я не ошибаюсь то порт должен быть числом
addr = input (“адрес ИП :”) port = int(input (“введите PORT хоста: ”))
Офлайн
там есть такое:
int_port = input (“введите PORT хоста: ”)
и это работает. Просто port = input… не работало, а int_port = input… работает
Офлайн
ste1n88разница только в имени переменной port и int_port но вы задали вопрос относительно port
port = input… не работало, а int_port = input… работает
ste1n88а пытаетесь возможно запустить в коде где переменная используется int_port.
то есть как именно? и как потом обратно?
вот так делать:
int(addr) = input (“адрес ИП :”)
port = input (“введите PORT хоста: ”)
sock2.connect((addr,port))
Офлайн
Всё. Разобрался. Частично ответы всех участников помогли. Всем спасибо))
Офлайн