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

Python socket Взаимодействие клиента и сервера в разных сетях wifi

05.06.2021, 03:20. Показов 5625. Ответов 4

Author24 — интернет-сервис помощи студентам
Есть сервер и клиент. При подключении клиента к серверу на разных устройствах которые находятся в одной сети обмен данными происходит успешно. При активации клиента в другой сети ничего не происходит. Собственно говоря это мне надо исправить. Пример сервера и клиента ниже. Литература и справки по поводу разработки веб серверов и конкретно данной темы приветствую.

Сервер:

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
26
27
28
29
30
31
32
33
34
35
36
import socket
import sys
 
# создаемTCP/IP сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
# Привязываем сокет к порту
server_address = (str(socket.gethostbyname(socket.gethostname())), 10000)
print('Старт сервера на {} порт {}'.format(*server_address))
sock.bind(server_address)
 
# Слушаем входящие подключения
sock.listen(1)
 
while True:
    # ждем соединения
    print('Ожидание соединения...')
    connection, client_address = sock.accept()
    try:
        print(f'Подключено к: {client_address}\n')
        # Принимаем данные порциями и ретранслируем их
        while True:
            data = connection.recv(16)
            print(f'Получено: {data.decode()}')
            if data:
                print('Обработка данных...')
                data = data.upper()
                print('Отправка обратно клиенту.\n')
                connection.sendall(data)
            else:
                print('Нет данных от: ', client_address)
                break
 
    except:
        # Очищаем соединение
        connection.close()

Клиент:

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
26
27
28
29
30
31
32
33
34
import socket
import sys
import time
 
# Создаем TCP/IP сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
# Подключаем сокет к порту, через который прослушивается сервер
server_address = ("мой айпи", 10000)
sock.connect(server_address)
print("Подключено к {} порт {}\n".format(*server_address))
 
while True:
    try:
        # Отправка данных
        mess = input("Введите данные: ")
        print(f"Отправка: {mess}")
        message = mess.encode()
        sock.sendall(message)
        print("Данные отправлены!")
        # Смторим ответ
        amount_recieved = 0
        amount_expected = len(message)
        while amount_recieved < amount_expected:
            data = sock.recv(16)
            amount_recieved += len(data)
            mess = data.decode()
            print(f"Получено: {mess}\n")
    except:
        print("Закрываю сокет...")
        sock.close()
        print("Сокет закрыт.")
        break
time.sleep(5)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2021, 03:20
Ответы с готовыми решениями:

Python 3 socket на разных компьютерах по одному wifi
Здравствуйте! Пытаюсь написать простой пример python 3 socket. Сервер import socket sock = socket.socket() ...

Подключение WiFi принтера в разных сетях
Ситуация такая. Стоит Роутер N56u Asus принимает инет от провайдера, и по лану к нему подключены Пк, так же по лану подключен еще один...

2 домена 2dhcp сервера в разных сетях
Добрый день дорогие форумчани!!!!! Я пищу вам из далёкого Туркменистана 1) У нас имеется работающая сеть (windows server 2016) 2) Нужно...

4
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
 Аватар для TAVulator
4191 / 1292 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
05.06.2021, 07:50
Цитата Сообщение от jason_hunter Посмотреть сообщение
При подключении клиента к серверу на разных устройствах которые находятся в одной сети обмен данными происходит успешно. При активации клиента в другой сети ничего не происходит.
По-моему ответ дан в самом вопросе...
0
0 / 0 / 0
Регистрация: 05.06.2021
Сообщений: 23
05.06.2021, 14:19  [ТС]
Суть вопроса в том, чтобы обмен данными происходил при подключении клиента, который находится в другой сети, чего собственно говоря не происходит
0
110 / 107 / 30
Регистрация: 08.05.2021
Сообщений: 469
05.06.2021, 14:35
Суть вопроса в том, что у тебя сервер за натом или фаерволом.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5969 / 3732 / 1098
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.06.2021, 18:37
Сети для самых маленьких: https://linkmeup.ru/blog/11.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.06.2021, 18:37
Помогаю со студенческими работами здесь

Socket. Отсоединение клиента от сервера
Приветствую вас, форумчане. У меня тут питоновские сокеты Задача такая: нужно написать функцию для клиента, которая после получения...

Взаимодействие клиента и сервера
Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Функционирование клиента и сервера реализовать следующим образом:...

Взаимодействие клиента и сервера
клиент-серверные приложения пишу впервые. собсно на данный момент планирую общать клиент и сервер примерно так: клиент посылает серверу...

Почему socket получает ip сервера, а не клиента
Плохо разбираюсь в конфигах ngnix, но после того как перевел сервер на SSL, сокет стал получать IP самого сервака, а не клиента: server {...

Взаимодействие клиента и сервера UDP
Хочу чтобы была взаимная передача строк между клиентом и сервером. Добился односторонней передачи. Вот сделал 2 стороннюю, но получается...


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

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

Новые блоги и статьи
Реализация многопоточных сетевых серверов на Python
py-thonny 16.05.2025
Когда сталкиваешься с необходимостью писать высоконагруженные сетевые сервисы, выбор технологии имеет критическое значение. Python, со своей элегантностью и высоким уровнем абстракции, может. . .
C# и IoT: разработка Edge приложений с .NET и Azure IoT
UnmanagedCoder 16.05.2025
Мир меняется прямо на наших глазах, и интернет вещей (IoT) — один из главных катализаторов этих перемен. Если всего десять лет назад концепция "умных" устройств вызывала скептические улыбки, то. . .
Гибридные квантово-классические вычисления: Примеры оптимизации
EggHead 16.05.2025
Гибридные квантово-классические вычисления — это настоящий прорыв в подходах к решению сложнейших вычислительных задач. Представьте себе союз двух разных миров: классические компьютеры, с их. . .
Использование вебсокетов в приложениях Java с Netty
Javaican 16.05.2025
HTTP, краеугольный камень интернета, изначально был спроектирован для передачи гипертекста с минимальной интерактивностью. Его главный недостаток в контексте современных приложений — это. . .
Реализация операторов Kubernetes
Mr. Docker 16.05.2025
Концепция операторов Kubernetes зародилась в недрах компании CoreOS (позже купленной Red Hat), когда команда инженеров искала способ автоматизировать управление распределёнными базами данных в. . .
Отражение в C# и динамическое управление типами
stackOverflow 16.05.2025
Reflection API в . NET — это набор классов и интерфейсов в пространстве имён System. Reflection, который позволяет исследовать и манипулировать типами, методами, свойствами и другими элементами. . .
Настройка гиперпараметров с помощью Grid Search и Random Search в Python
AI_Generated 15.05.2025
В машинном обучении существует фундаментальное разделение между параметрами и гиперпараметрами моделей. Если параметры – это те величины, которые алгоритм "изучает" непосредственно из данных (веса. . .
Сериализация и десериализация данных на Python
py-thonny 15.05.2025
Сериализация — это своего рода "замораживание" объектов. Вы берёте живой, динамический объект из памяти и превращаете его в статичную строку или поток байтов. А десериализация выполняет обратный. . .
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru