gpt4 book ai didi

c# - NSNetService 使用 C# 分配 IP 地址

转载 作者:行者123 更新时间:2023-11-29 05:27:20 27 4
gpt4 key购买 nike

使用Python link当用户在控制中心选择设备时,我能够发布一个服务,设置我想要连接的 IP 地址。下面是 Python 的代码。现在在 C# 中使用 NSNetService 我试图实现同样的目标。发布正在工作,但将 IP 地址 socket.inet_aton("10.100.X.XX") 添加到 NSNet 服务我无法在 C# 中实现这一点。请发布一些实现指南。如何将 IP 地址添加到 NSNETService 以在 NSNetBrowser 中显示该 IP 地址。


_testService = new NSNetService("_airplay._tcp.local.", "_testservice._tcp", "测试服务", 7000);
_testService.Published += delegate (对象发送者, EventArgs e) {
NSNetService ns = 发送者为 NSNetService;
Console.WriteLine("Bonjour 已发布服务 '{0}'", ns.Name);
};
_testService.WillPublish += delegate (对象发送者, EventArgs e) {
NSNetService ns = 发送者为 NSNetService;
Console.WriteLine("Bonjour 将发布服务'{0}'", ns.Name);
};
_testService.PublishFailure += delegate (对象发送者, NSNetServiceErrorEventArgs e) {
NSNetService ns = 发送者为 NSNetService;
Console.WriteLine("Bonjour 发布服务'{0}'失败", ns.Name);
};
这个

import logging
import socket
import sys
from time import sleep
 
from zeroconf import ServiceInfo, Zeroconf
 
if __name__ == '__main__':
    logging.basicConfig(level=logging.DEBUG)
    if len(sys.argv) > 1:
        assert sys.argv[1:] == ['--debug']
        logging.getLogger('zeroconf').setLevel(logging.DEBUG)
 
    airplay_desc = {'deviceid': '00:05:a6:16:45:4b',
                    'features': '0xA7FFFF7,0xE',
                    'flags':    '0x4',
                    'model':    'AppleTV5,3',
                    'pi':       '6b448552-85ce-4143-a896-e28d12e8a0ab',
                    'pk':       'F381DC574DEAF9C70B75297755BC7C7C35BB1D0DB500258F3AB46B5FE7C7355B',
                    'srcvers':  '220.68',
                    'vv':       '2'}
 
    airplay_info = ServiceInfo("_airplay._tcp.local.",
                       "SLP._airplay._tcp.local.",
                       socket.inet_aton("10.100.251.193"), 7000, 0, 0,
                       airplay_desc)
 
    raop_desc = {'am': 'AppleTV5,3',
                 'ch':'2',
                 'cn':'0,1,2,3',
                 'da':'true',
                 'ek':'1',
                 'et':'0,3,5',
                 'md':'0,1,2',
                 'pw':'false',
                 'sm':'false',
                 'sr':'44100',
                 'ss':'16',
                 'sv':'false',
                 'tp':'UDP',
                 'tx':'vers=1',
                 'vn':'65537',
                 'vs':'220.68',
                 'sf':'0x4',
                 'ft':'0xA7FFFF7,0xE',
                 'pk':'F381DC574DEAF9C70B75297755BC7C7C35BB1D0DB500258F3AB46B5FE7C7355B',
                 'vv':'2'}
 
    raop_info = ServiceInfo("_raop._tcp.local.",
                       "0005A616454B@SLP._raop._tcp.local.",
                       socket.inet_aton("10.100.X.XX"), 7000, 0, 0,
                       raop_desc)
 
    zeroconf = Zeroconf()
    print("Registration of a service, press Ctrl-C to exit...")
    zeroconf.register_service(airplay_info)
    zeroconf.register_service(raop_info, allow_name_change=True)
 
    try:
        while True:
            sleep(0.1)
    except KeyboardInterrupt:
        pass
    finally:
        print("Unregistering...")
        zeroconf.unregister_service(airplay_info)
        zeroconf.close()

最佳答案

为遇到此问题的任何人创建了一个存储库。仅供引用:无法使用 NSNetService 实现目标,但可以使用 net-mdns 实现 https://github.com/Raj123456788/ZeroConfiOS

关于c# - NSNetService 使用 C# 分配 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58034784/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com