我在ad-hoc网络中有一个服务器和其他一些客户端节点。 某些节点位于服务器范围内,可直接接收hello消息并向邻居广播,但哪些节点不在服务器范围内,将从服务器的邻居节点接收hello消息。
我的程序中有第一个问题,我需要在客户端放置主机ID,将消息传递给客户端或客户端到客户端,对于服务器到客户端,我可以使用套接字使用IP地址(socket.socket(socket.AF_INET, socket.SOCK_STREAM))但是对于那些不是这些节点的服务器邻居的下一个客户端,我需要广播id,因为那些节点只知道服务器IP
那么我如何使用广播地址而不是IP地址来编程播放问候消息
这是客户端的代码,我输入的是我的主机ID,但主机ID只能从服务器一跳有效,其余节点不接受hello消息,因为它们不会与另一个节点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")