问题标签 [cfsocket]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3095 浏览

objective-c - 如果不是主机 IP,CFSocketSetAddress 会失败?

我正在制作一个简单的 WOL 应用程序。到目前为止,我可以成功创建一个套接字,但是在使用 CFSocketSetAddress 设置地址时,我只能使用我的计算机的网络 ip(WiFi ip = 192.168.0.5)或本地 ip(127.0.0.1)。

对于 WOL,我想将数据发送到广播地址 (255.255.255.255)。如果输入了这个,我将返回错误“无法设置地址”。

我是否误解了 CFSocketSetAddress 的使用,并且地址应该是主机 IP 或目标 IP?在任何一种情况下,我需要做什么,以便我的目标 ip 是广播地址?

下面是我的一些代码:

0 投票
1 回答
1412 浏览

macos - 如何阻止 CFSocket 发送回调?

我有一个服务器应用程序,它为每个连接的客户端创建一个对象。在此对象的init方法中,我使用此代码创建一个CFSocket与客户端通信:

当主程序与客户端完成时,它会释放ClientConnection对象并dealloc调用它的方法:

完成后,我仍然会收到数据回调,这些回调会路由到导致崩溃的现在解除分配的对象。

我尝试了我能想到的一切,但我仍然无法完成这项工作。关于为什么CFSocket在它失效后发送回调的任何想法?

0 投票
1 回答
2294 浏览

cocoa - 在 Mac OSX Lion 10.7.2 中绑定/侦听端口失败

我正在尝试在 MacOSX 10.7.2 (Lion) 下设置 SilverLight 策略服务器。这要求我创建一个套接字并将其绑定到端口 943,因为 SilverLight 请求此端口上的策略文件。不幸的是,我似乎无法在该端口绑定,因为绑定调用失败,errno=49. 我想我无权访问该端口。也许我需要root权限?还是我需要将此端口转发到另一个我可以绑定的端口?我对网络编程有点陌生,所以非常感谢任何帮助!我还附上了我的源代码。也许我做错了什么,尽管如果我使用 SilverLight 受限端口 4502-4532 可以正常工作,一旦成功提供策略文件,SilverLight 就会在该端口上进行通信。

0 投票
2 回答
519 浏览

iphone - 如何在基于 Bonjour 的 ios 应用程序中解决多个地址?

我正在尝试在 ios 中实现基于 Banjour 的应用程序。我也完全实现了成功将数据发送和接收到一个 iphone 到另一个 iphone。浏览服务中的所有其他设备后工作。并显示在表格中。

在此处输入图像描述

现在我想在表格视图中选择一些设备,并将数据发送到选定的设备

在此处输入图像描述

为此,我在每个设备中只创建了一个套接字。

现在我想将数据发送到选定的设备。为此,我存储了另一个 NSMutableArray 选定的 NSNetService(即设备)。使用时单击发送按钮将调用特定的操作。

如果我想为每个设备解析地址(上面的代码)。它只会为第一个设备解析。并得到错误

  • (错误代码=-72003]

如果我解决了一个设备的地址,它会自动从 Tableview 中删除。

所以我的疑问是:

  1. 为什么选择的设备被撤销?
  2. 现在我创建基于 TCP 的套接字,如何添加目标地址来发送数据?
  3. 是否可以将数据从单个套接字发送到多个目的地?
0 投票
2 回答
2164 浏览

objective-c - 如何通过 WiFi 连接 iPhone 应用程序上的多个对等点?

我有一个需要连接到多个对等点的 ios(iPhone) 应用程序的想法。我的代码基于WiTab (SampleCode-developer.apple.com) 示例。

当我的应用程序启动每个对等点时,创建单独的套接字(CFSocket)并通过 NSNetService 类发布。在特定实例中,NSNetServiceBrowser 类找到可用的对等点。并在TableView中显示他们的名字。当我在表格视图中选择行时,对应的对等地址已解析,连接建立并发送接收数据成功。

但我的意图是,我想在 tableView 中选择多行(多个对等)。并解析选定的对等地址。为此,我将选定的对等点信息存储到 NSMutableArray。当我单击(触摸)发送按钮时,我想解析选定的设备地址并将数据发送到选定的对等方。为此我做了这个代码

但它只会解决一个设备(self.selectedService objectAtIndex:0)。那么我如何解决多个对等地址/如何为多个设备建立连接。所以我的疑问是:-

  1. 是否可以通过 WiFi 同时连接多个设备?
  2. 如果是,同一模式下最多可以连接多少台设备?
  3. 哪种类型的 CFSocket 对多连接(TCP/UDP)有用?
  4. 是否需要在每个对等方中创建多个 CFSocket?
  5. 如果是,如何?他们有任何可用的文件吗?
  6. 是否需要建立会话?
  7. 如何解析多个设备的地址?
0 投票
2 回答
6354 浏览

ios - 在 IOS 上使用 CFSocket 进行 UDP 广播

一直在做一些谷歌搜索和一些关于这个主题的阅读,但无论我花了多少时间搜索,似乎都无法做到这一点。

我想做的是通过宣传我对他们提供的服务的兴趣来接收连接在我的网络上的设备的广播消息。使用wireshark,我可以看到我想连接的网络设备通过我的网络发送的广播/通知消息,但看不到我对他们服务的兴趣的广播搜索。但是通过网络实用程序,我可以看到套接字已创建,但不知道它处于哪个状态,是侦听还是连接。

是的,我知道我可以使用一些库来执行此操作,但我想从头开始构建自己的东西,并更好地了解它是如何工作的。

MySocket.h

MySocket.m

编辑:一切运行良好,直到调用发送数据。

是否有一些小但很重要的东西才能让它工作,我错过了?还是我错过了大局?

任何帮助或指导表示赞赏。提前致谢,周末愉快

0 投票
1 回答
845 浏览

iphone - iPhone CFSocket 传入/传出消息

据我了解,您无法在两部 iPhone 之间建立连接(如果我错了,请纠正我)。所以我想做的是在客户端应用程序之间有一台服务器,它接受消息并将它们重新分发给适当的人。本质上,该应用程序将允许人们拥有一个共享地图,其中包含他们的位置并且每个人都可以对其进行注释。

1) 我一直在阅读和研究 CFStream 类,但我很想知道使用 C send() 和 recv() 函数是否更好。它们似乎更容易使用。CFStream 在原生 C 套接字函数上提供了什么使其成为更好的选择?

2)由于我需要手机主动监听更新的共享用户位置/来自其他用户的新注释,我的计划是定期让手机轮询服务器以获取其他用户的任何“新闻”(比如每分钟或两分钟)。无论如何,电话是否可以在应用程序中启动一个不断等待传入流量的新线程?能够让用户注释地图,将其推送到服务器,然后立即更新适当的用户地图,这将使生活变得更容易。

我一直在使用来自 O'Rielly Media 的 Jonathan Zdziarski 的 iPhone SDK 书中的示例套接字代码来尝试在服务器和 iPhone 模拟器(经典的敲门笑话服务器/客户端)之间发送消息。但是,在发送 1 或 2 条消息后,服务器会卡在“接收”中。当不是从模拟器发送代码时,代码运行完美,因为我似乎可以向客户端发送函数发送垃圾邮件并每次都从服务器获得响应。服务器会因为我使用 send() 和 recv() 而不是 CFRead 和 Write 流而挂起吗?

0 投票
1 回答
364 浏览

ios - 如何在 ios 中从 CFRunLoopRun 访问 UI

当我在 CFSocket 类的 CFRunloop (connectCallBack) 中获取命令时,如何弹出一个新视图。

0 投票
0 回答
720 浏览

ios - 如何在 ios CFSocket 中启用保持活动?

如何在 ios 应用程序(CFSocket 类)中启用保持活动状态。

0 投票
1 回答
418 浏览

objective-c - CFSocketCreateWithNative 后的潜在内存泄漏

这让我发疯!这里有什么问题?

在此处输入图像描述