Передача приветственного сообщения в сети adhoc с использованием socket () в python - PullRequest
0 голосов
/ 31 мая 2018

У меня есть один сервер и несколько других клиентских узлов в сети ad-hoc. Некоторые узлы находятся в диапазоне сервера, который может напрямую получать приветственное сообщение и транслировать соседям, но узлы не находятся в диапазоне сервера, который будет принимать приветственное сообщение от соседних узлов сервера.
У меня есть первая проблема в моей программе, что мне нужно поместить идентификатор хоста на стороне клиента, который будет передавать сообщение клиенту или клиенту клиенту, для сервера клиенту я могу использовать IP-адрес с помощью socket (socket.socket (socket.AF_INET,socket.SOCK_STREAM)) но для следующего клиента, который не является соседом сервера для этих узлов, мне нужен широковещательный идентификатор, потому что эти узлы знают только IP-адрес сервера Так как я могу запрограммировать широковещательное сообщение приветствия, используя широковещательный адрес вместо IPадрес Вот код на стороне клиента, я помещаю свой идентификатор хоста, но идентификатор хоста действителен только до одного перехода от сервера, и оставшийся узел не будет принимать приветственное сообщение, потому что они не будут соединяться с другим узлом ip, а также я хочучтобы получить одно приветственное сообщение на каждогоузел. Plz, помогите изменить мой код ниже.

import socket

print ("----trying to connect with host")
HOST = ''
PORT = 5000              
HOST1='101.0.0.2'
PORT1=5001
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST,PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)

        while True:

            data = conn.recv(4096)
            print (data)
            if not data: break
            conn.sendall(data)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s1:
    try:
        s1.connect ((HOST1,PORT1))

        s1.sendall (b'hello i am client 1')

        print ("Connected to ", HOST1)
    except ConnectionRefusedError:
        print ("Connection Refused")
...