问题标签 [cocoaasyncsocket]

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 回答
3432 浏览

ios - 是否可以在 2 个 iOS 设备之间建立套接字连接

是否可以在连接到同一网络(无网络)的 2 个 iOS 设备之间建立套接字连接?

如果可能的话..(CocoaAsyncSocket 项目)对我有用吗?

我只想从设备 A设备 B 发送一条消息,将应用程序置于后台.. 当设备 B收到消息时,应显示通知以将应用程序返回到前台。

它不适用于 App Store,所以我不在乎 Apple 是否会因为这种行为而拒绝该应用程序。

0 投票
1 回答
1354 浏览

ios - semaphore_wait_trap、GCD 和 CocoaAsyncSocket

我目前正在使用 CocoaAsyncSocket 构建一个应用程序。我连接到 TCP 服务器并读/写一些数据。

我使用创建套接字

收到数据后,我使用 FMDB 将其保存到数据库中。一切正常,直到我将应用程序发送到后台(使用主页按钮),然后恢复到它。UI 被冻结并且没有响应,调试器显示它正在 semaphore_wait_trap 处等待。

0 投票
1 回答
229 浏览

cocoaasyncsocket - AsyncSocket如何构造带有N字节指示数据包长度的前缀?

我是 iOS 套接字编程的新手。我已经用带有 {packet, 4} 的 erlang 实现了一个 tcp 服务器,在 erlang 套接字之间进行通信很容易。但是如何在 AsyncSocket 中将数据包的长度添加到 4 个字节中?

一些代码表示赞赏。

我进行了如下测试,但对我的服务器端没有影响:

0 投票
1 回答
991 浏览

ios - 未调用 AsyncSocket 委托方法

我在单例类中保留了一个套接字,如下所示:

套接字连接.h

套接字连接.m

在视图控制器中:

我可以看到套接字已连接到我的服务器中,但我的 xcode 控制台日志中没有任何内容。请帮忙看看为什么它不能调用委托方法?

0 投票
2 回答
249 浏览

cocoa - 会话关闭前的 TCP 数据

无论如何,是否允许在会话关闭之前获取通过 tcp 发送的所有数据?我得到的是我必须在收到数据后才从服务器关闭会话,而且我必须手动传递 EOL 或回车或“\n”或“\r”。

任何帮助和建议表示赞赏。

0 投票
1 回答
1147 浏览

iphone - 从 CocoaAsyncSocket 读取数据

我正在使用 CocoaAsyncSocket ,我需要创建一个向服务器发送消息并等待服务器回复的函数,在委托方法中它确实接收服务器响应,但我需要发送消息的函数等待服务器回复和返回响应。

0 投票
1 回答
298 浏览

ios - 读取未知数量的传入字节

我的应用程序使用 AsyncSocket 通过 TCP 与服务器通信。通信有两种情况:

  1. 应用程序向服务器发送一些东西,服务器做出响应。应用程序需要读取此响应并对其中的信息进行处理。这个响应总是相同的长度,例如,一个响应总是 6 个字节。

  2. 应用程序处于“空闲”状态,服务器在某个时间启动通信(应用程序未知)。该应用程序需要读取服务器发送的任何内容(可以是任意数量的字节,但第一个字节将指示后面有多少字节,因此我知道何时停止读取)并处理此信息。

第一种情况工作正常。readDataToLength:timeout:tag返回我需要的东西,我可以用它做我想做的事。这是我不确定如何实施的第二种情况。我不能使用readDataToLength:timeout:tag,因为我事先不知道长度。

我想我可以做点什么readDataWithTimeout:tag:,将超时设置为-1。我相信,这使得套接字不断地监听任何进来的东西。但是,这可能会干扰响应我发送的内容而传入的数据(情况 1)。该应用程序无法再区分来自情况 1 或情况 2 的传入数据。

这里有谁能帮我解决这个问题吗?

0 投票
1 回答
466 浏览

ios - UDP 套接字在 iOS 中不能与 3G 网络一起使用?

我正在使用GCDAsyncUdpSocket,它在 wifi 网络上运行良好

但是当我在 3g 网络中测试时,它似乎不起作用。

可以在 3G 网络中使用 GCDAsyncUdpSocket 吗?

0 投票
1 回答
3699 浏览

ios - 未调用 AsyncSocket 委托

我正在尝试编写一个应用程序来通过 CocoaAsyncSocket 库发送/接收数据。

在应用程序的第一个版本中,套接字在 View Controller 中创建/初始化,我还将正确调用的委托方法放置在其中:

WakmanFirstViewController.m

现在我正在尝试从 ViewController 中删除套接字的创建并将其放入 Singleton 类中,以便我也可以从其他视图中使用相同的连接。

为此,我创建了一个新类(SocketConnection),其中还移动了委托方法:

wakmanSocketConnection.h

wakmanSocketConnection.m

然后我修改了 Viewcontroller:

WakmanFirstViewController.h

WakmanFirstViewController.m

连接已建立,但问题是未调用委托方法。

wakmanSocketConnection.m 中,我将委托设置为 self,因此它应该引用我复制方法的类。

有人可以帮我找到问题吗?

谢谢, 科拉多

0 投票
1 回答
3981 浏览

ios - 为什么 GCDAsyncSocket 在读取超时后总是断开连接?

我在处理读取超时的代码中查看了 GCDAsyncSocket.m。如果我不延长超时,似乎套接字已关闭,并且套接字活动保持没有选项。我不能使用无限超时(timeout = -1),因为我仍然需要知道它何时超时,但也不希望它断开连接。我不确定这背后有什么原因。有人知道吗?

仅供参考,在https://github.com/robbiehanson/CocoaAsyncSocket/pull/126有一个拉取请求,它添加了此保持活动功能,但尚未拉取。