问题标签 [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 回答
592 浏览

swift - Swift GCDAsyncSocket acceptOnPort:错误:不打开端口?

我在 10.9 上使用 Xcode beta 3 编写使用 GCDAsyncSocket 的服务器。以下代码返回 true 并且不会产生错误,但 Network Utility 说端口 5050 未打开。

在同一台机器上,在相同版本的 Xcode 中,等效的 ObjC 运行良好,并在 5050 上打开了一个端口。我的代码、GCDAsyncSocket、Swift 或 Xcode 有问题吗?

TIA。

0 投票
1 回答
1453 浏览

ios - iOS:GCDAsyncSocket 及其标签

在我的应用程序中,我使用 GCDAsyncSocket 并以这种方式读写:

在我在委托方法中读取数据后:

在这个委托方法中,我想起了“readDataWithTimeout”,所以我以这种方式读取了所有数据。

当我打一个新电话时的问题ID,如果我这样做:

我用 tag = 2 开始新的写入和新的读取;当调用委托方法“didReadData”时,我的代码进入 tag = 1 块内;它似乎无法识别新标签。

为什么会发生?

0 投票
1 回答
2085 浏览

swift - Swift 使用 Objective-C 类

我正在尝试使用 GCDAsyncSocket 连接我的应用程序。

我得到编译错误。当我尝试这个时:

我得到:“在调用中缺少参数'withTimeout'的参数”当更改为:

我得到:“调用中的额外参数'withTimeout'”我很困惑......

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

ios - 使用 AudioUnit IOS 从 nsdata 的服务器流播放语音

我正在尝试在 iOS 中构建某种 VoIP 应用程序。到目前为止,我已经能够成功地将麦克风数据作为缓冲区从麦克风发送到使用GCDAsyncSocket. 现在我需要回放我收到的数据,这让我很困惑。我在网上看过,但我看到的只是从远程播放音频文件或从 URL 播放音频流。我实际上NSData定期接收,需要弄清楚如何使用它们NSData来填充音频单元缓冲区列表。我是 C 的新手,发现很难通过它。这是我NSData从服务器获取的。

在我的 中AudioUnitProcessor,这就是我AUnit使用Stefan Popp 的代码进行设置的方式:

最后这是向服务器发送音频数据的方法

所有这些工作都很好,我可以在我的服务器中聆听以 Java 运行的声音。现在我需要弄清楚如何调整这个音频单元来播放NSData我不断从服务器接收到的数据包(我看过一些播放远程文件的例子,这不是我需要的。我需要播放语音)。来源不是文件,而是有人在说话,所以我有点困惑。

0 投票
1 回答
2298 浏览

ios - GCDAsyncSocket 多个连接?

我已经在使用 GCDAsyncSocket 连接 2 个设备。一个广播自己并接受连接,另一个监听并请求连接。如果我尝试将另一个设备连接到仍在广播的主机,它会在第一个设备仍然连接时连接然后终止连接!

如何重组我的代码以接受多个连接?我错过了什么?请帮忙,我正在努力解决这个问题!这是我的代码:


0 投票
1 回答
254 浏览

objective-c - 在 GCDAsyncSocket 上设置匿名密码

有没有办法在 GCDAsyncSocket 库中启用匿名密码?以便通过 TLS/SSL 连接到弱保护的服务器。

0 投票
1 回答
1597 浏览

ios - 使用 GCDAsyncSocket 传输文件接收器

我正在使用 GCDAsyncSocket。编写一个应用程序,用于在两个设备之间传输文件,在接收文件时有几个问题: 当我想向另一个接收设备(iOS 设备或 iOS 模拟器)发送一个大小约为 60 KB 的文本文件时,需要在数据之前添加一些数据包信息,如下所示:

2 字节头版本,1 字节标识数据或命令,4 字节数据大小,25 字节保留空间,

32 字节之后是文件数据、文本文件或图像文件或其他文件。因此,在调用 socket.writeData 之前,我编写了一个 NSMutableData,然后发送到接收设备。

发送设备一切正常,接收设备有问题 接收到四个数据包。每个数据包大小都不同,但我只在发送方设备发送一次,并且套接字头是混乱的。

我发现了一些关于读取数据的讨论: 在编程流时遇到问题

在数据末尾添加[GCDAsyncSocket CRLFData],在didReadData使用数据前添加readDataToData:[GCDAsyncSocket CRLFData],也没有解决问题。

任何人都可以帮助我吗?谢谢!

0 投票
1 回答
461 浏览

cocoa - 使用 GCDAsyncSocket 的(弱保护)安全服务器

我正在尝试使用 GCDAsyncSocket 编写一个受保护较弱的服务器(即我可以使用匿名密码连接到的服务器)。我目前正在做的事情如下:

  1. 绑定到端口并开始监听

    /li>
  2. 然后,当指定端口上的连接到达时,我会在- (void)socket:(GCDAsyncSocket *)sender didAcceptNewSocket:(GCDAsyncSocket *)newSocket回调中收到它。在这里,我使用我的 SSL/TLS 设置创建了一个字典:

    /li>
  3. 在我通过调用应用设置后startTLSnewSocket断开连接并被调用- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)error,错误代码为 9800 (errSSLProtocol)。

问题:我做错了什么/没有做什么?

我的猜测是这与我没有指定的证书有关。但是,如果我正在使用匿名密码,是否需要指定证书?