0 / 0 / 0
Регистрация: 08.12.2018
Сообщений: 27

Как настроить socket НЕ для локальной сети

01.02.2020, 00:21. Показов 7447. Ответов 3

Студворк — интернет-сервис помощи студентам
Такая идея: хотелось бы, чтобы две программы на python могли передавать между собой байты. в локальной сети у меня всё отлично работает, однако для работы socket через интернет, как я понял, нужно сделать port-forwarding на роутере, НО мой классный провайдер не даёт такой возможности, т.к. кормит клиентов "серым" IP. Вопрос в том что можно сделать? Я прочитал, что нужно создать VPN сервер на VPS и типа всё в шоколаде будет, но можно чуть по-подробнее для людей, которые не занимальсь 10 лет сетями? У меня есть очень отдалённое понимание того, что имеется в виду но хотелось бы чёткого объяснения что нужно и как сделать.
Спасибо за ваши ответы.
Вот ещё самплы кода, если не понятно о чём речь:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import socket
import time
import pickle
 
 
IP = socket.gethostname()
PORT = 1234
 
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 
server_socket.bind((IP, PORT))
 
server_socket.listen()
 
print(f'Listening for connections on {IP}:{PORT}...')
 
client_socket, client_adress = server_socket.accept()
print(pickle.loads(client_socket.recv(1024)))
client_socket.send(pickle.dumps('DONE'))
time.sleep(1)
client_socket.send(pickle.dumps('boi'))
 
print(client_socket, client_adress)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import socket
import pickle
import time
 
IP = socket.gethostname()
PORT = 1234
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
client_socket.connect((IP, PORT))
 
client_socket.setblocking(False)
 
client_socket.send(pickle.dumps("NICE."))
time.sleep(1)
print(pickle.loads(client_socket.recv(1024)))
time.sleep(1)
print(pickle.loads(client_socket.recv(1024)))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2020, 00:21
Ответы с готовыми решениями:

Как настроить роутер для доступа к локальной сети?
Всем привет! Есть роутер TrendNET TW100-S4W1CA/EU (версия G), раздает инет на два домашних компа, с инетом проблем нет, но заставить...

1с 8.2 тонкий клиент для локальной сети как настроить
здравствуйте, подскажите как надо делать или ссылку на простую краткую инструкцию скиньте как 1с 8.2 бухгалтерию настроить доступ...

Не могу настроить acl для данной локальной сети
Помогите с вариантом: 2. Разделить сеть 172.65.12.0/24 на 16 подсетей с максимальным количеством хостов в подсети: PC3 и PC5 и laptop - 3...

3
 Аватар для Semen-Semenich
5201 / 3452 / 1168
Регистрация: 21.03.2016
Сообщений: 8,280
01.02.2020, 11:39
PashaM999, не знаю насчет VPN сервера но делал такие грабли. на компе с сервером стоит яндекс диск. сервер при запуске получает внешний ip компа пишет его в файл на диск, диск автоматом синхронизирует файлы. теперь получаем ссылку на файл из сети открываем доступ к нему и прописываем эту ссылку в хосте. хост при запуске по ссылке на файл читает из него ip и по нему подключается к серверу. из нюансов - сервер должен в промежутки проверять внешний ip и тот что в файле и перезаписывать если изменился. хост при обрыве тоже должен заново читать файл.
0
0 / 0 / 0
Регистрация: 08.12.2018
Сообщений: 27
01.02.2020, 11:57  [ТС]
Semen-Semenich, интересный способ, но проблема не в том, что IP меняется (он меняется только когда роутер перезагружаешь, то есть почти никогда) ), а в том, что socket должен принимать данные через порт, поэтому нужно, по идее, форвардинг на роутере делать, чтобы если из интернета приходило что-либо на порт 1234, то оно переадресовывалось на программу. Но я не могу указать в программе клиента внешний IP адрес, т.к. на WAN роутера другой (значит порта такого не будет), а IP адрес на WAN не имеет доступа к сети. Короче, замкнутый круг какой-то.
0
 Аватар для Semen-Semenich
5201 / 3452 / 1168
Регистрация: 21.03.2016
Сообщений: 8,280
01.02.2020, 12:28
проброс порта
назначить статический ip-адрес в Windows
в клиенте вы указывате ссылку на файл на диске. клиент спокойно читает файл из яндекса по ссылке. остальное дело техники. идет запрос по ip на порт сервера роутер перекидывает запрос на комп по его статическому адресу
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2020, 12:28
Помогаю со студенческими работами здесь

Настроить Outlook Express, для работы в локальной сети
Люди помогите настроить outlook, ты что бы работал по локальной сети (между пользователями, без интернета).

Пытаюсь настроить второй роутер для игр в локальной сети
Доброго времени суток. Пытаюсь настроить второй роутер Mi Router 4A который подключен через кабель RJ45 к основному роутеру tp-link...

Как правильно настроить роутер в локальной сети с Wi-Fi
Добрый день! Столкнулся с настройкой локальной сети (4 ПК, 1 ноутбук, 1 роутер), где один из ПК и ноутбук работают по wi-fi. Необходимо...

Настроить роутер для подключения с ноутбука по wifi к локальной сети компьютера
Привет Всем. Завис на этом форуме в поисках решения, но так и не нашел. У меня на компьютере есть локальная сеть с привязкой по ip и mac...

TP-LINK TD-W8951 ND не могу настроить доступ в интернет для локальной сети
Здравствуйте. Роутер tp-link td-w8951nd используется в домашней сети (небольшая фирма) на 8 компов как ADSL-модем для выхода в интернет и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

Новые блоги и статьи
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru