Это наверно очень глупый вопрос для этого сайта, но при попытки гуглить вечно выдает создание серверов для игр и другое.
Читал про библиотеку soket и немного погонял данные между компами, но как я понял, работает она ток для передачи данных между процессами и компьютерами работающих в одной сети.
Моей целью является передача данных с одного компьютера на другой, работающих в разных сетях.
Не могли бы вы сбросить чтиво или "грубо" сказать как создать такой сервер ?
я пробовал создать "серверными сокет" выглядело это так:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = ip
port = 8007
s.bind((host,port))
s.listen(100)
conn, addr = s.accept()
while True:
while True:
data = conn.recv(1024)
if not data:
break
print('client is at', addr, data.decode("utf-8"))
conn.send(data.upper())
conn.close()
ip это мой IP ,
выводило ошибку:
OSError: [WinError 10049] The requested address is not valid in its context
я читал что такая ошибка говорит о том что не видит внешний айпи и потому не может подключится.
я не так что то написал ?
Этот пример я взял и использовал с сайта не писал сам.
Работает для передачи данных между компами я одной сети.
Из-за этого и ошибка, bind возможен только на адрес принадлежащий хосту. А "реальный айпи" скорее всего принадлежит маршрутизатору или вообще провайдерскому шлюзу.
Dima_E, выполните ipconfig /all в командной строке. вы получите список IP-адресов (IPv4-адрес), имеющихся на вашем компе. только адрес из этого списка или 0.0.0.0 может быть задан в качестве ip в вашем коде.
Я понял только то что я ламер, что не могу понять даже упрощенный ответ из за того что даже таких знаний нету... "провайдерскому шлюз"
Вроде читал про IP, но про "провайдерскому шлюз" не читал.
Думал что правайдер выдает айпи, а маршутизатор выдает что то типо подIP 192.168.0.(0-255) для разных устройств.
Явно нужно больше информации узнать, прежде чем пробовать создать сервер.
Dima_E, как-то так, да.
ну а со второго компа подключаешься к этому IP. не забудь убедиться, что файервол на первом компе разрешает подключения к этому своему IP по указанному номеру порта.
если же второй комп находится в интернете - подключаться надо по тому адресу, что отобразился тебе в 2ip.ru, но перед этим убедиться, что в твоём маршрутизаторе на внешнем интерфейсе именно этот ip-адрес, и настроить проброс порта с маршрутизатора на первый комп.
vreitech, Вроде, но это не точно тот способ который я использовал через "socet" позволял использовать ток ipv4 так что надо искать другой вариант создание сервера, но спасибо за инфу.
Буду пробовать.
Dima_E, чтобы программировать сетевые приложения, нужно понимать работу сетей. В другом ответе советуют хороший учебник Олифера. Если в общих чертах: Ваш компьютер имеет частный IP-адрес, иногда ещё называемым серым. Такой адрес идентифицирует хост в рамках локальной подсети. Провайдер так же выдаёт вашему маршрутизатору серый IP. Интернет-трафик с вашего компьютера уходит на ваш маршрутизатор, а с него на шлюз провайдера, откуда NAT'ится в Интернет. Шлюз провайдера уже имеет белый IP-адрес, уникальный для всего Интернета. При такой схеме ваш компьютер может обращаться к серверам в Интернете, а вот из Интернета к вашему компьютеру обратиться невозможно. Чтобы это стало возможно, вам нужно купить у провайдера белый IP и настроить на маршрутизаторе проброс портов до вашего компьютера.
Сергей Горностаев, под белым IP вы подразумеваете статический ?
У меня провайдер Онлайм у него в личном кабинете я видел услугу статичного айпи в одни руки, можно его считать белым ?
Просто не думаю что в личной кабинете я найду слова "белый айпи", или меня поймут в call центре.