У меня есть один сервер и несколько других клиентских узлов в сети 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")