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

ios - iOS-CocoaAsyncSocket:图像数据未从客户端 CocoaAsyncSocket 发送

我正在使用CocoaAsyncSocket-master源的 GCD 代码。我使用“EchoServer”运行服务器版本应用程序和“SimpleHTTPClient”客户端应用程序在我的 iOS 设备上运行。使用他们提供的示例,我可以运行桌面服务器应用程序和 iOS 客户端应用程序并将其连接起来而不会出现任何问题。

我现在正在尝试将UIImage 数据发送到服务器应用程序,而不是它们在现有客户端项目中发送的 http 标头。所以,我在客户端按照下面的代码发送UIImage 数据。但是,问题是,它没有将这些图像数据正确地发送到服务器前端应用程序。

代码:https ://github.com/robbiehanson/CocoaAsyncSocket

我使用 CocoaAsyncSocket 提供的相同项目 'CocoaAsyncSocket-master/GCD/Xcode/SimpleHTTPClient' 并更改了以下代码以发送示例图像。

用于发送的 SimpleHTTPClient 客户端代码:

接收时的服务器代码...

问题:

使用 SimpleHTTPClient 和 EchoServer,我面临以下两个问题,1.) iOS 客户端在 2 或 3 分钟后与 Echo 服务器断开连接......不知道为什么,可能有一些超时。2.)当我传输大尺寸图像时,它接收并加载一些图像,然后在服务器前端日志视图中立即抛出错误为“将接收到的数据转换为 UTF-8 字符串时出错”,请找到参考图像。 在此处输入图像描述

0 投票
4 回答
816 浏览

ios - 在加载时显示等待警报视图

我希望当我的应用程序启动时它显示大约 5 秒的警报视图,然后根据后台进程的结果,它将显示另一个警报视图。

我遇到的问题是,当我尝试使用 Sleep 来等待后台进程发生时。第一个警报不显示并等待 5 秒。该应用程序显示应用程序的第一个视图,然后在 5 秒后短暂显示第一个警报。

我需要做什么来执行我想要的。

这是我的代码。

0 投票
1 回答
1205 浏览

ios - 为 CocoaAsyncSocket 创建 sockaddr_in 获取无效的 IPv4 地址

我无法连接到 Java 套接字服务器。我知道服务器正在工作,因为我通过 Java 套接字连接。我正在使用 CocoaAsyncSocket 库从 iOS 设备建立客户端连接。我试过以下,

方法,但服务器永远不会看到客户端连接并且客户端(CocoaAsyncSocket)认为它已连接。所以那不好,然后我意识到还有另一种连接方法可用。

所以我想我应该改用 connectToAddress 方法。我已将这篇文章用作我当前代码的参考,但我仍然遇到错误,我不知道为什么。我的版本和建议的版本的唯一区别是他们使用 sa_len 的长度,我得到了一个错误,xCode 想将它切换到 sin_len,所以我做到了。我对直接套接字连接真的很陌生,所以请耐心等待。

连接失败,错误是,

0 投票
1 回答
3500 浏览

ios - iOS/Objective-C 中的 TCP 客户端 - 检查开放端口

我已经研究了关于 AsyncSocket 的一些关于 SO 的问题,但没有点击任何内容。我觉得我正在尝试做的事情相当简单,所以它会是面对面的......我已经尝试过非GCD版本,但也没有任何乐趣。

我需要能够扫描一系列主机以查找特定的开放 TCP 端口。不幸的是,我无法控制服务器代码来让它使用 Bonjour 宣布自己。所以,我只能进行暴力扫描,只是尝试在那个端口上连接——如果我得到“连接被拒绝”,那么我知道继续......

所有这一切都让我想到了 AsyncSocket,我认为它是适合这项工作的工具。使用作者的示例,我有一个基本的工作示例,但并不完全。像他的示例一样,为了简单起见,我只是使用主队列。问题是,关于委托方法是否被调用似乎是一个废话。有时 socketDidDisconnect: 会触发,有时不会。在这种特殊情况下,我知道端口 5002 在 192.168.1.7 上打开。但是,当它到达数组中的那个元素时,didConnectToHost 不会触发。但是,如果我从 IP 列表中删除除 .7 之外的所有内容,则 didConnectToHost 会触发。我怀疑在如此紧密的循环中调用 connectToHost: 是一个问题,但我无法证明这一点。如果有人知道一种更简单的方法来实现这一点,我愿意接受。令人惊讶的是,有'

0 投票
2 回答
238 浏览

ios - iOS AsyncSocket 通知两个 UIViewController

我正在使用 AsyncSocket 进行 TCP 连接。
我有一个 TCP 套接字,但我有两个 UIViewControllers 使用这个套接字。
据我所知,在我初始化 AsyncSocket 时只有一个委托。
这两个 UIViewController 都需要处理来自 AsyncSocket 的回调。
有什么好主意来实现这一目标吗?
任何想法表示赞赏!

0 投票
3 回答
5450 浏览

ios - 如何在 iOS 中进行多线程处理?

对不起这个问题的模糊标题,我想不出一个简洁的句子来解释我遇到的问题。

基本上我想启动多个线程并传递一个具有线程特定值的对象,我可以在该上下文中使用这些值。这是执行此操作的代码

每个线程都使用正确的thread_bytesand调用选择器方法,thread_offset并且还可以访问GCDAsyncSocket套接字,因此导致许多使用thread_bytesand的委托方法调用thread_offset。这是选择器方法。

如果有 N 个线程正在处理,当我发送请求消息时_thread_offset,例如如果偏移量是 0、2、4、8该上下文中的唯一偏移量。

另外,线程完成时是否有任何回调方法?

0 投票
1 回答
385 浏览

ios - 如何在ios app中通过cocoaasyncsocket创建线程监听服务器

如何cocoaasyncsocket在ios应用程序中创建线程来监听服务器

cocoaasyncSocket从这里使用:cocoaAsyncSocket

我尝试示例代码并将此代码推送到AppDelegate.hAppDelegate.m 但是当我连接时,此应用程序没有收到从服务器发送的任何数据。我希望我的应用在连接后自动从服务器接收数据

0 投票
1 回答
920 浏览

ios - 如何找到本地网络上的所有服务器?

我将 CocoaAsyncSocket 用于 iPad 上的服务器客户端应用程序。现在,如果服务器启动,客户端可以输入服务器的 IP 并连接到它。有没有办法显示本地网络上运行此应用程序的所有服务器?

谢谢!

0 投票
0 回答
696 浏览

ios - CocoaAsyncSocket / GCDAsyncSocket:关闭 SSL/TLS 会话(回到未加密的 TCP 连接)/建立第二个 SSL 会话/重新协商会话

我在通过 SSL 连接到服务器时遇到问题。一旦我执行一个特殊命令,我正在与之交谈的服务器上的服务就会切换并失去 SSL 会话,从而迫使我进行新的 SSL 握手。
如何使用 GCDAsyncSocket 做到这一点?在我打电话后[socket startTLS:...],不可能关闭 SSL 会话(类似于[socket stopTLS])并再次重新打开它或重新协商 SSL 会话。我也无法断开并重新连接 TCP 套接字或使用第二个套接字进行连接,因为那样我将在第一次连接到服务器时获得的入口点服务重新开始。

我很感激你能提供给我的任何想法!

提前致谢。

- 编辑 -

仍然无法弄清楚如何在不打开新 TCP 套接字的情况下建立第二个 SSL 会话。我也找不到任何方法来手动重新协商 SSL 会话......

有任何想法吗?提前致谢!

0 投票
1 回答
315 浏览

ios - CocoaAsyncSocket 设置缓冲区大小

我编写了一个与 silverlight 客户端和 iOS 客户端(使用 CocoaAsyncSocket)进行通信的 VB.NET 服务器。我正在发送和接收 JSON 数据,以及编码为 base64 字符串的 pdf 文档。在客户端接收编码的 pdf 文档时,我遇到了一些性能问题,通过调整 ReceiveBufferSize 并在服务器上设置 SendBufferSize(当前都设置为 65536),它很容易在 silverlight 客户端中修复。但在 iOS 客户端上,我找不到任何设置缓冲区大小的位置。在 silverlight 中接收大约 6MB 的文档需要 3-4 秒,而在 iOS 上需要 25-30 秒。