91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

ubuntu使用mdns進行設備間通信的方法

小樊
110
2024-09-04 00:43:23
欄目: 智能運維

mDNS(多播DNS)是一種用于在本地網絡上發現其他設備和服務的協議

  1. 安裝必要的軟件包:

在Ubuntu上,你需要安裝avahi-daemonlibnss-mdns這兩個軟件包。打開終端并運行以下命令來安裝它們:

sudo apt-get update
sudo apt-get install avahi-daemon libnss-mdns
  1. 配置mDNS:

編輯/etc/nsswitch.conf文件,將hosts行修改為包含mdns4_minimal

sudo nano /etc/nsswitch.conf

將以下內容添加到hosts行:

hosts: files mdns4_minimal [NOTFOUND=return] dns

保存并退出。

  1. 重啟avahi-daemon服務:
sudo systemctl restart avahi-daemon
  1. 注冊服務:

你可以使用avahi-publish命令注冊一個服務。例如,如果你想在本地網絡上注冊一個名為myservice的服務,可以運行以下命令:

avahi-publish -s "My Service" _myservice._tcp 12345

這將在本地網絡上注冊一個名為My Service的服務,使用TCP協議,端口號為12345。

  1. 發現服務:

要在本地網絡上發現服務,可以使用avahi-browse命令。例如,要查找所有可用的_tcp服務,可以運行以下命令:

avahi-browse -at _services._dns-sd._udp

這將顯示本地網絡上所有可用的服務。

  1. 使用Python編寫mDNS客戶端和服務器:

你還可以使用Python的zeroconf庫編寫mDNS客戶端和服務器。首先,安裝zeroconf庫:

pip install zeroconf

然后,你可以參考以下示例代碼來實現mDNS客戶端和服務器:

  • mDNS服務器示例代碼:
from zeroconf import ServiceInfo, Zeroconf

desc = {'version': '0.1'}
info = ServiceInfo("_myservice._tcp.local.", "My Service._myservice._tcp.local.", socket.inet_aton("127.0.0.1"), 12345, 0, 0, desc)

zeroconf = Zeroconf()
zeroconf.register_service(info)

try:
    while True:
        time.sleep(0.1)
except KeyboardInterrupt:
    pass
finally:
    zeroconf.unregister_service(info)
    zeroconf.close()
  • mDNS客戶端示例代碼:
from zeroconf import ServiceBrowser, Zeroconf

class MyListener:
    def remove_service(self, zeroconf, type, name):
        print("Service %s removed" % (name,))

    def add_service(self, zeroconf, type, name):
        info = zeroconf.get_service_info(type, name)
        print("Service %s added, service info: %s" % (name, info))

zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_myservice._tcp.local.", listener)

try:
    while True:
        time.sleep(0.1)
except KeyboardInterrupt:
    pass
finally:
    zeroconf.close()

這樣,你就可以在Ubuntu上使用mDNS進行設備間通信了。

0
潢川县| 上虞市| 盐池县| 桃江县| 丽江市| 开远市| 五大连池市| 明光市| 玛纳斯县| 通江县| 青阳县| 深水埗区| 涪陵区| 响水县| 墨脱县| 金坛市| 雷州市| 六枝特区| 通辽市| 枣庄市| 大姚县| 景谷| 汉中市| 文水县| 宽城| 高碑店市| 黔西| 新河县| 沙雅县| 大埔县| 周口市| 兰西县| 青铜峡市| 海原县| 六安市| 石楼县| 北海市| 青冈县| 邵阳市| 昌江| 闽清县|