使用python中的socket()在adhoc网络中广播hello消息

时间:2018-05-31 01:32:17

标签: python sockets broadcast ad-hoc-distribution ad-hoc-network

我在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")

0 个答案:

没有答案