SSDP協議的Python示例

2021-06-21 22:23:42 字數 4396 閱讀 6725

廢話少說,直接上**。服務端ssdp_server.py:

# 繫結到任意位址和ssdp組播埠上

self.__s.bind((any_ip, ssdp_port))

# info: 使用預設值

# self.__s.setsockopt(socket.sol_ip, socket.ip_multicast_ttl, 20)

# self.__s.setsockopt(socket.sol_ip, socket.ip_multicast_loop, 1)

# self.__s.setsockopt(socket.sol_ip, socket.ip_multicast_if,

# socket.inet_aton(intf) + socket.inet_aton('0.0.0.0'))

# info: 新增到多播組

self.__s.setsockopt(socket.sol_ip, socket.ip_add_membership,

socket.inet_aton(ssdp_addr) + socket.inet_aton(local_ip))

self.local_ip = local_ip

def start(self):

while true:

data, addr = self.__s.recvfrom(2048)

conn = connection(self.__s, data, addr)

conn.handle_request()

self.__s.setsockopt(socket.sol_ip, socket.ip_drop_membership,

socket.inet_aton(ssdp_addr) + socket.inet_aton(self.local_ip))

self.__s.close()

if __name__ == '__main__':

port = ssdpserver()

port.start()

客戶端ssdp_client.py:

# info: 若繫結,服務端收到的是固定的位址和埠號

self.__s.setsockopt(socket.sol_socket, socket.so_reuseaddr, 1)

local_ip = socket.gethostbyname(socket.gethostname())

self.__s.bind((local_ip, 50000))

def start(self):

self.__send_search()

while true:

reads, _, _ = select.select([self.__s], , , 5)

if reads:

data, addr = self.__s.recvfrom(2048)

conn = ssdp_server.connection(self.__s, data, addr)

conn.handle_request()

if conn.is_find_service:

break

else: # timeout

self.__send_search()

self.__s.close()

def __send_search(self):

print "sending m-search..."

# info: 傳送到ssdp組播位址上

self.__s.sendto(ms, (ssdp_addr, ssdp_port))

if __name__ == '__main__':

port = ssdpclient()

port.start()

SSDP協議基礎

ssdp協議,不知道大家是否聽說過呢?這個協議的使用多出現在埠當中。下面我們就來了解一下這個協議的具體內容吧。什麼是ssdp協議呢?ssdp就是簡單服務發現協議 ssdp,service discovery protocol 是一種應用層協議,是構成通用即插即用 upnp 技術的核心協議之一。簡單服...

SSDP協議內容解析

ssdp service discovery protocol 簡單服務發現協議,用於發現區域網裡面的裝置和服務。ssdp訊息分為裝置查詢訊息 裝置通知訊息兩種,通常情況下,使用更多地是裝置查詢訊息。1 裝置查詢訊息 格式例子如下 其中第一行是訊息頭,固定 host對應的是廣播位址和埠,239.25...

關於SSDP協議的基礎知識

ssdp就是簡單服務發現協議 servicediscoveryprotocol 是一種應用層協議,它是構成通用即插即用 也就是upnp,upnp是各種各樣的智慧型裝置 無線裝置和個人電腦等實現遍布全球的對等網路連線的結構 技術的核心協議之一。簡單服務發現協議提供了在區域性網路裡面發現裝置的機制。控制...