问题标签 [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 投票
1 回答
1139 浏览

ios - 使用 CFStreamCreatePairWithSocketToHost 建立 IPV6 套接字连接

我面临使用 CFStreamCreatePairWithSocketToHost 创建与 iPV6 的套接字连接的问题。但我能够为相同的端口号创建与 IPV4 的套接字连接。

尝试了所有方案,例如添加 http、不带 http 的 https、在 IPV6 地址之间添加,对我没有任何效果。

IPV6 的输出是流事件 8(错误代码为 8)以 NSStreamEventErrorOccurred 结束 handleEvent 方法 下面是代码,我用来创建套接字连接

0 投票
1 回答
1070 浏览

cocoa - 使用 c 函数时警告“使用未声明的标识符 self”

这是我在可可 ViewController.h 中实现“CFsocket”的代码

这是 ViewController.m

当我使用c函数时,它无法识别我合成的_CommandDisplay,但我需要将读取的数据打印到NSTextView,我该如何解决这个问题?

0 投票
0 回答
937 浏览

ios - 如何在 iOS 中禁用 nagle 的算法?

我正在使用 cfwritestream 读取和写入 iOS 的套接字。我需要禁用 Nagle 的算法以提高套接字的写入效率,并进行了更改以包含 TCP_NODELAY,但是,从 pcap 日志中我没有看到 Nagle 的算法已被禁用。

以下是我为套接字启用 tcp_nodelay 选项的代码。这是在调用 wrapsocket 以将本机套接字包装到 cfsocketstream 时完成的。

如果我遗漏了什么,请告诉我。

0 投票
1 回答
1092 浏览

swift - Swift2,在 CFSocketCallBack 中调用 swift 函数 - EXEC_BAD_ACCESS

我正在尝试使用 Swift2.1.1 中的 Xcode:7.2.1 为 Mac OSX 编写套接字服务器应用程序。参考CocoaEcho 示例代码。但是我不能在 socketCallBack 函数中调用 swift 函数。
我的代码在这里。我根据Swift 2 - UnsafeMutablePointer 的答案将 self 传递给 object。而且我认为代码的一部分工作正常。

我在代码server.acceptConnection(tempData)处得到 EXEC_BAD_ACCESS code=2 。
调试器为infoserver显示相同的指针,这应该意味着info(self)已正确分配给server。但 EXEC_BAD_ACCESS 似乎意味着 self 不再可用。我正在努力寻找解决方案。如果有人能给我任何建议,将不胜感激。在此先感谢您的帮助。

0 投票
1 回答
760 浏览

objective-c - NSOutputStream 上的 hasSpaceAvailable 属性是什么意思?

我正试图围绕hasSpaceAvailableNSOutputStream 背后的逻辑。

在我的应用程序中,我通过由 NSInput/output 流管理的 CFSocket 发送大量数据(100MB),分成 4080 字节的块(硬限制)。

当我开始写入数据时,大约四分之一hasSpaceAvailable突然变成NO,所以我将数据添加到队列中。但是,如果我忽略这一点并尝试写入数据,则写入似乎可以作为write:maxLength:与 maxLength 参数(4080)匹配的返回值。

输出流有什么空间?据我所知,在使用 UNIX/Berkley 套接字时,没有可用于确定套接字是否可以写入的逻辑,您只需编写并确定是否所有数据都已写入。

该物业的文件指出:

一个布尔值,指示是否可以写入接收器。(只读)
YES如果可以写入接收器,或者是否必须尝试写入以确定是否有可用空间,NO否则。

在我看到 NO 的示例中,当我仍然可以写入该套接字时,是什么因素导致了这个结果。

0 投票
1 回答
352 浏览

ios - 在 Xamarin.iOS 的 CFSocket 上启用广播

我需要你的帮助。

我有这个 Xamarin 应用程序,它在网络上使用 发送多播System.Net.UdpClient,但它似乎很不稳定,并且在我无法控制的后台线程中崩溃了很多。所以我虽然为什么不去低级。除了在套接字上启用广播标志的部分外,一切似乎都很好。在 Objective-C 中,你可以这样做: setsockopt(CFSocketGetNative(cfSocket), SOL_SOCKET, SO_BROADCAST, (void *)&yes, sizeof(yes));

通过查看单声道源,您会看到 Socket 类具有EnableBroadcasthttps ://github.com/mono/mono/blob/463cf3b5c1590df58fef43577b9a3273d5eece3d/mcs/class/System/System.Net.Sockets/Socket.cs#L195

这启发了这个(非常实验性的)代码:

它运行,但无论我将 setsockopt 签名更改为什么,它都会返回 -1。

TL;DR 你认为可以在旧的 CFNetwork.framework 中启用 CFSocket(虽然是 Xamarin.iOS)上的广播标志吗?

0 投票
1 回答
152 浏览

ios - 未在 iOS UDP 套接字中获取数据回调

我正在尝试在 iOS 上设置一个 UDP 套接字来监听来自多播套接字的数据报:

所有套接字调用都成功,但我没有收到任何回调(我正在从单独的 macOS 应用程序向 MC 地址发送 UDP 数据报)。

我究竟做错了什么?

感谢您的所有帮助!干杯。

0 投票
1 回答
2093 浏览

swift - Swift 中的 CFSocket (4)

我尝试建立与 TCP 服务器的连接,不幸的是没有成功。这是我的实际方法。有谁知道,错误在哪里?我收到错误CFSocketConnectToAddress(我得到 .error 结果,所以我的代码在连接打印时导致错误)。

有任何想法吗?

0 投票
2 回答
2717 浏览

objective-c - 在 Mac OS Hight Sierra 上创建和绑定套接字

我在为 Hight Sierra 的应用程序中创建套接字时遇到了严重而奇怪的问题。如果我创建命令行工具,一切正常!我创建套接字,绑定套接字。但是如果我尝试创建 Cocoa App,我无法绑定我的套接字!:(

如果我在 Cocoa App 中使用 CFSockets,

我收到这条消息:

CFSocketSetAddress 绑定失败:1

如果我在 Cocoa App 中使用低级 C 函数,如下所示:

...它也不起作用,我在绑定时遇到错误,并且在控制台中也收到此消息:

错误:不允许操作

但是在命令行工具中一切正常!

我需要修复什么样的项目设置(可能在 info.plist 中)?哪里有麻烦?:(

帮我!:(((

0 投票
1 回答
421 浏览

swift - 如何在 Swift 中处理 CFSocketCallBackType.dataCallback?

所有文档 和示例都说,如果给套接字的CFSocketCallBack标注 a.dataCallback作为其第二个参数 ( callbackType),这意味着第四个 ( data) 可以强制转换为CFData包含从套接字预读取的所有数据的对象。

但是,当我尝试这样做时,它失败了:

我得到的崩溃是这样的:

在调试器中,当我键入以下内容时:

它只是打印一个指针地址(也相当高;只有两个有效0的 s)。但是,当我输入以下内容时:

它打印这个:

所以看起来我得到的并不是真正的 a CFData,但它足够接近,表面上看起来和它很相似,直到有东西真的试图这样解读它。

那么这里发生了什么,我的数据在哪里,我该如何解决这个问题?