Cocoa 在本地主机上通过bonjour发布
我有两个应用程序,其中一个运行http服务器,另一个访问它。我不想硬编码的URL或应用程序中的端口,这是客户端,所以我想通过bonjour发布发布的代码如下Cocoa 在本地主机上通过bonjour发布,cocoa,macos,http,localhost,bonjour,Cocoa,Macos,Http,Localhost,Bonjour,我有两个应用程序,其中一个运行http服务器,另一个访问它。我不想硬编码的URL或应用程序中的端口,这是客户端,所以我想通过bonjour发布发布的代码如下 NSString *publishingDomain = @"local."; NSString *publishingName = @"some"; NSString* type = @"_http._tcp."; int port = 1234; netService = [[NSNetService alloc] initWith
NSString *publishingDomain = @"local.";
NSString *publishingName = @"some";
NSString* type = @"_http._tcp.";
int port = 1234;
netService = [[NSNetService alloc] initWithDomain:publishingDomain type:type name:publishingName port:port];
netService.delegate = self;
[netService publish];
当服务成功发布时,bonjour浏览器在服务名称下列出了一组ip地址,但没有一个可以用于连接到服务,而我可以使用localhost:port和127.0.0.1:port访问web服务器。Bonjour browser未将127.0.0.1列为列表中的ip地址
要解决这个问题,需要做哪些不同的工作?Bonjour浏览器在http.\u tcp下列出的“ip地址束”到底是什么?它们是否指向在您的网络上运行的其他有效服务,或者它们只是垃圾?@Asmus它们都是在执行ifconfig时找到的ip地址,除了127.0.0.1,它显示在ifconfig中,但不在bonjour Browser中。您是否尝试将publishingDomain更改为空字符串?我相信NSNetService默认为
本地。
无论如何。Bonjour是正确的方法吗?我认为它还会将您的服务发布到本地网络上的其他每台计算机上,即使它们都无法从面向网络的IP地址访问它。这也意味着,如果你的应用程序在子网上的多台计算机上运行,每当你想连接到你计算机上的一台时,Bonjour也会列出其他计算机上运行的所有应用程序,你必须对它们进行筛选…Bonjour浏览器在_http.\u tcp下列出的“ip地址串”到底是什么?它们是否指向在您的网络上运行的其他有效服务,或者它们只是垃圾?@Asmus它们都是在执行ifconfig时找到的ip地址,除了127.0.0.1,它显示在ifconfig中,但不在bonjour Browser中。您是否尝试将publishingDomain更改为空字符串?我相信NSNetService默认为本地。
无论如何。Bonjour是正确的方法吗?我认为它还会将您的服务发布到本地网络上的其他每台计算机上,即使它们都无法从面向网络的IP地址访问它。这也意味着,如果你的应用程序在子网上的多台计算机上运行,每当你想连接到你计算机上的一台时,Bonjour也会列出其他计算机上运行的所有应用程序,你必须对它们进行筛选。。。