问题标签 [gcdasyncsocket]

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

ios - 无法使用 GCDAsyncSocket 从服务器读取数据

我尝试连接到服务器并向服务器发送一些信息(如用户名、密码..),然后服务器将 ID(字符串类型)发回给我。问题是我无法获得ID。有人可以帮我吗?我是IOS编码的初学者。谢谢。

这是代码:

  1. 单击按钮后,它将调用我自己的函数来获取字符串的 serverIP 和 int 的端口。
  2. 然后该函数将调用此函数来连接服务器:

    /li>
0 投票
0 回答
3512 浏览

objective-c - GCDAsyncSocket 未连接或给我错误以知道它失败

我正在尝试使用GCDAsyncSocket该类连接到设备,但遇到了问题。它似乎没有通知我它是否连接,但也没有通知我它未能连接。

这是我的 .h 文件

这是我的 .m 文件

从我的视图控制器中,我调用了这个类的 connect 方法,但唯一打印到控制台的是:

注意:我已经为控制台实现了所有委托,GCDAsyncSocket并通过NSLog.

关于为什么我没有收到消息“Socket did connect to host on port”或消息“Socket did disconnect with error”的任何想法?

0 投票
0 回答
367 浏览

iphone - GCDAsyncsocket如何读取xmpp文件传输

我正在使用 xmpp 框架和 TURNSocket 类。一旦我有一个 socks5 连接,GCDasyncsocket 我需要接收另一个客户端正在发送的数据。

readdatattodata 的所有样本都使用像 CrLF 这样的终止符,我如何才能读取正在发送的完整文件数据。

0 投票
1 回答
1882 浏览

iphone - GCDAsyncSocket - 读取流永远不会完成

我正在玩 GCDAsyncSocket (MRC / iOS5.1) 一段时间,尤其是“大”文件 (5 - 10 mb)。不幸的是,有时读取流永远不会完成(例如,它被卡住了)只有几个字节在流的末尾;didReadPartialDataOfLength:停止向我提供信息并且根本didReadData没有被解雇。

这是我的一些代码(对于编写/阅读示例,主机和客户端之间的连接已经建立)

写作

阅读

我希望这是足够的代码来查看我做错了什么,或者这对于写入/读取大块数据来说是一种不好的做法。

0 投票
3 回答
5407 浏览

ios - iOS 上的 GCDAsyncUdpSocket 缺少多播数据报

我在网络上有一个设备通过 UDP 多播一个非常小的文件。我正在开发的 iOS 应用程序负责读取这些数据包,我选择使用GCDAsyncUdpSocket来执行此操作。该文件每半秒发送一次,但是我几乎没有收到它(大约每 3-10 秒接收一次)。

考虑到这可能是设备的问题,我开始使用 Wireshark 监控流量。这似乎反映了我在应用程序中看到的内容,直到我在 Wireshark 中启用“监控模式”,此时每个 UDP 数据包都被捕获。此外,iOS 模拟器开始接收所有丢失的数据包,因为它与我正在开发的 Mac 共享 NIC。

有没有办法在 iOS 设备上启用“监控模式”或我缺少的东西可以让丢失的数据包进入?我还看到 GCDAsyncUdpSocket 中有一个 readStream 方法。也许我需要使用它而不是 beginReceiving?如果是这样的话,虽然我不知道如何在 Objective-C 中设置流。

这是我现在的测试代码:


任何将来来这里的人的解决方案:

根据 ilmiacs 的回答,我能够通过 ping 目标 iOS 设备显着减少丢失数据包的数量。使用 Mac,我在终端中运行了它 -

既然我已经使用 Mac ping iOS 设备运行它,我将研究 Apple 的 iOS ping 示例,看看是否可以让设备 ping 自身以刺激其自己的无线适配器 (127.0.0.1)。

0 投票
1 回答
2364 浏览

objective-c - iOS GCDAsyncSocket writeData 导致 EXC_BAD_ACCESS

当点击播放按钮时,它在 Xcode 中崩溃并显示消息“线程 6 GCDAsyncSocket 0 objc_msgSend”。有时它只是工作,但大多数时候我得到这个错误。有什么线索吗?

快照:http: //i.imgur.com/G2Nv4.png

以下是代码行:

谢谢!

0 投票
1 回答
265 浏览

objective-c - GCDAsyncSocket 错误

如果我想编译我的程序,我遇到了一些错误,我不知道发生了什么我想在我的 iPad 上编译它,我想在我的 iPad 上构建一个 TCP 服务器来从客户端读取数据。我是IOS编程的初学者。感谢帮助!西蒙 错误

0 投票
2 回答
1830 浏览

objective-c - GCDAsyncUdpSocket 在发送到 IPv6 地址时立即关闭

我通过 UDP 连接到 Bonjour 宣传的不同设备上的服务器。当运行此代码的 iOS 设备和服务器都在我们的 wifi 网络上时,它工作得很好,因为 bonjour 服务解析为我们的 dhcp 服务器分发的 192.168.0.xxx 地址。但是,当它通过蓝牙进行广告时,有时服务会解析为 169.254.xxx.xxx (IPv4),在这种情况下它工作得很好。但有时它会解析为 fe80::xxxx:xxxx:xxxx:xxxx (IPv6),在这种情况下,套接字连接(我收到udpSocket:didConnectToAddress回调)但在我尝试发送数据时立即关闭(我udpSocketDidClose:withError在调用 send 时立即收到回调)。

我的udpSocket:didConnectToAddress方法调用了发送,此时我的其他回调基本上只是信息性的(NSLog)。这是传递给的 NSError udpSocketDidClose:withError

用处不大。

在解决这个问题时,我想让它与 IPv6 一起工作,而不是强制 IPv4 ......强制 IPv4 对我来说似乎很脆弱。

0 投票
1 回答
506 浏览

objective-c - 如何在视图控制器(故事板)之间传递打开的套接字

Xcode iOS 6 与故事板。我正在向现有程序添加聊天功能。我正在使用 GCDAsyncSocket。当我呆在一个视图控制器中时,一切都完美无缺。我需要从许多视图控制器访问打开的套接字。我还需要从这些视图控制器访问 GCDASYNCSOCKET。

有没有人有一些可能对我有帮助的示例代码?

使用 perpareforsegue 会允许我通过一个打开的套接字吗?我见过的任何单例似乎都没有考虑到已经存在的类,如 GCDASYNCSOCKET 并且似乎不起作用。

请帮我提供一些工作示例。

单身人士.m

单例.h

此代码(单例)给我一个错误

当我尝试从另一个视图控制器访问它时出现错误(从 SocketConnection 分配给 'GCDAsyncSocket" _strong' 的指针类型不兼容)

0 投票
0 回答
421 浏览

ios - Node JS udp 广播未读取——node js 和 iOS

这是我的代码(节点的javascript):

这是我的计算机运行节点的 ifconfig(我认为唯一相关的事情——如果我错了,请纠正我):

udp 广播既不会在我的 iOS 应用程序上收到,也不会通过数据包检查器可见。怎么了?!iOS 应用使用 GCDAsyncUdpSocket 框架:

会发生什么:“didReceiveData”不会从节点广播中调用。但是,当它发出自己的消息时,它会被调用。

另一方面,iOS 应用程序成功广播,我能够在我的数据包检查器上拦截该数据包。但是,相同的数据包检查器不会显示应该来自 Node 的数据包。

我在节点上做错了什么?我认为我在节点中所做的是问题所在。