问题标签 [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.
ios - 是否可以在 2 个 iOS 设备之间建立套接字连接
是否可以在连接到同一网络(无网络)的 2 个 iOS 设备之间建立套接字连接?
如果可能的话..(CocoaAsyncSocket 项目)对我有用吗?
我只想从设备 A向设备 B 发送一条消息,将应用程序置于后台.. 当设备 B收到消息时,应显示通知以将应用程序返回到前台。
它不适用于 App Store,所以我不在乎 Apple 是否会因为这种行为而拒绝该应用程序。
ios - semaphore_wait_trap、GCD 和 CocoaAsyncSocket
我目前正在使用 CocoaAsyncSocket 构建一个应用程序。我连接到 TCP 服务器并读/写一些数据。
我使用创建套接字
收到数据后,我使用 FMDB 将其保存到数据库中。一切正常,直到我将应用程序发送到后台(使用主页按钮),然后恢复到它。UI 被冻结并且没有响应,调试器显示它正在 semaphore_wait_trap 处等待。
cocoaasyncsocket - AsyncSocket如何构造带有N字节指示数据包长度的前缀?
我是 iOS 套接字编程的新手。我已经用带有 {packet, 4} 的 erlang 实现了一个 tcp 服务器,在 erlang 套接字之间进行通信很容易。但是如何在 AsyncSocket 中将数据包的长度添加到 4 个字节中?
一些代码表示赞赏。
我进行了如下测试,但对我的服务器端没有影响:
ios - 未调用 AsyncSocket 委托方法
我在单例类中保留了一个套接字,如下所示:
套接字连接.h
套接字连接.m
在视图控制器中:
我可以看到套接字已连接到我的服务器中,但我的 xcode 控制台日志中没有任何内容。请帮忙看看为什么它不能调用委托方法?
cocoa - 会话关闭前的 TCP 数据
无论如何,是否允许在会话关闭之前获取通过 tcp 发送的所有数据?我得到的是我必须在收到数据后才从服务器关闭会话,而且我必须手动传递 EOL 或回车或“\n”或“\r”。
任何帮助和建议表示赞赏。
iphone - 从 CocoaAsyncSocket 读取数据
我正在使用 CocoaAsyncSocket ,我需要创建一个向服务器发送消息并等待服务器回复的函数,在委托方法中它确实接收服务器响应,但我需要发送消息的函数等待服务器回复和返回响应。
ios - 读取未知数量的传入字节
我的应用程序使用 AsyncSocket 通过 TCP 与服务器通信。通信有两种情况:
应用程序向服务器发送一些东西,服务器做出响应。应用程序需要读取此响应并对其中的信息进行处理。这个响应总是相同的长度,例如,一个响应总是 6 个字节。
应用程序处于“空闲”状态,服务器在某个时间启动通信(应用程序未知)。该应用程序需要读取服务器发送的任何内容(可以是任意数量的字节,但第一个字节将指示后面有多少字节,因此我知道何时停止读取)并处理此信息。
第一种情况工作正常。readDataToLength:timeout:tag
返回我需要的东西,我可以用它做我想做的事。这是我不确定如何实施的第二种情况。我不能使用readDataToLength:timeout:tag
,因为我事先不知道长度。
我想我可以做点什么readDataWithTimeout:tag:
,将超时设置为-1。我相信,这使得套接字不断地监听任何进来的东西。但是,这可能会干扰响应我发送的内容而传入的数据(情况 1)。该应用程序无法再区分来自情况 1 或情况 2 的传入数据。
这里有谁能帮我解决这个问题吗?
ios - 未调用 AsyncSocket 委托
我正在尝试编写一个应用程序来通过 CocoaAsyncSocket 库发送/接收数据。
在应用程序的第一个版本中,套接字在 View Controller 中创建/初始化,我还将正确调用的委托方法放置在其中:
WakmanFirstViewController.m
现在我正在尝试从 ViewController 中删除套接字的创建并将其放入 Singleton 类中,以便我也可以从其他视图中使用相同的连接。
为此,我创建了一个新类(SocketConnection),其中还移动了委托方法:
wakmanSocketConnection.h
wakmanSocketConnection.m
然后我修改了 Viewcontroller:
WakmanFirstViewController.h
WakmanFirstViewController.m
连接已建立,但问题是未调用委托方法。
在wakmanSocketConnection.m 中,我将委托设置为 self,因此它应该引用我复制方法的类。
有人可以帮我找到问题吗?
谢谢, 科拉多
ios - 为什么 GCDAsyncSocket 在读取超时后总是断开连接?
我在处理读取超时的代码中查看了 GCDAsyncSocket.m。如果我不延长超时,似乎套接字已关闭,并且套接字活动保持没有选项。我不能使用无限超时(timeout = -1),因为我仍然需要知道它何时超时,但也不希望它断开连接。我不确定这背后有什么原因。有人知道吗?
仅供参考,在https://github.com/robbiehanson/CocoaAsyncSocket/pull/126有一个拉取请求,它添加了此保持活动功能,但尚未拉取。