fbpx

Передача данных через socket python сервер-сервер

622 просмотра
0
0 Комментариев

Код сервера:

import socket
# слушаем и отправляем данные
s = socket.socket()
host = socket.gethostname()
print(host)
port = 12345
s.bind((host, port))
 
s.listen(5)
while True:
    c, addr = s.accept()
    print('adr:', addr)
    c.send(b'test')
    c.close()

Клиент:

# получаем данные
import socket
s_get = socket.socket()
host = socket.gethostname()
port = 10000
s_get.connect((host, port))
print(s_get.recv(1024).decode())

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

А как мне сделать сервер-сервер, чтобы два сервера между собой общались и постоянно передавали друг другу информацию?


Добавить комментарий

2 Answers

Python Опубликовано 20.03.2019
0

Сервер-сервер взаимодействие — это выполнение одновременно двух функций каждым участником: функций клиента (подключение к другим серверам) и сервера (прием подключений от других серверов). Вообще, если говорить про кластер, то обычно разделяют эти общения по разным портам. Серверы между собой общаются по одному, а реальных клиентов обслуживают по другому.

Добавить комментарий
0

Вам надо смотреть в строну архитектуры сетевого взаимодействия под названием «децентрализованная сеть», Peer to peer, где все участники сети потонцеальные и сервера и клиенты, пример такой сети это BitTorrent, а пример реализации вот. Так-же в сети есть куча готовых вариантов, такие как эти. Советую совместно с этим типом сетей, изучать параллельную модель выполнения в программных приложениях.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up