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

iphone - 从 Sockets 切换到 cocoaasyncsockets(字符串转换相关问题)

这个问题与一个用 ObjectiveC 编写的 iOS 项目有关,该项目使用了一些 C++-Headers。

我正在使用这种方法将消息发送到使用 TCP 的服务器。如您所见,有一个调用的 c++ 方法可以修改字符串以符合特定协议。此字符串被写入流。

我打算使用 cocoaasyncsocket-framework (http://code.google.com/p/cocoaasyncsocket/) 而不是直接处理流。问题是:使用此框架时如何实现相同的功能?

这是使用此框架写入服务器的样子:

这些是用于编码和解码的两种方法的定义

事实上,我正在寻找一种将 char*(编码方法的结果)发送到服务器的方法,但我不确定整个“NSString* 到 char* 到 uint8_t* 到 NSString* 的转换。

使用此框架处理这种转换以达到相同结果的最佳方法是什么?

提前感谢您的回答和所花费的时间!

0 投票
1 回答
846 浏览

objective-c - cocoaasyncsocket 发送数据>128bytes(谷歌协议缓冲区)

我正在使用 cocoaasyncsocket 将数据 Google 协议缓冲区(使用http://code.google.com/p/metasyntactic/wiki/ProtocolBuffers)发送到 Java 服务器。这一切都很好,但是对于消息(protoToSend)>128bytes 我遇到了问题,因为 Java 服务器无法正确读取消息长度,我想是因为我从 Objective C 发送了错误的长度。

我目前发送数据如下:

有任何想法吗?

提前致谢

0 投票
1 回答
3656 浏览

iphone - CocoaAsyncSocket 和从套接字读取数据

在我的基于 TCP 套接字的服务器上,我通过流发送一个数据包,其中数据包由一个标头组成,该标头指定数据包中的字节数,然后是该字节数。对于那些熟悉 Erlang 的人,我只是设置了 {packet, 4} 选项。在 iOS 端,我的代码看起来像这样,假设我想弄清楚这条消息的流的大小:

这工作正常,并调用以下委托方法回调:

我认为下一个合乎逻辑的步骤是计算流的大小,我这样做:

在服务器端硬编码一个 12 字节的字符串后,readLength 确实在客户端也读取了 12,所以到目前为止一切都很好。我继续进行以下操作:

此时虽然onSocket:didReadData:withTag:不再调用回调。相反,读取超时正在发生,可能是因为我没有正确处理读取,这个委托方法被调用:

因此,服务器总共发送 16 个字节、一个 4 个字节的标头和一个 12 个字节的二进制流。

我确信错误在于我如何使用 CocoaAsyncSocket。在我弄清楚它的大小之后,阅读流的其余部分的正确方法是什么?

** 更新 **

我改变了我的客户,它现在似乎正在工作。问题是,我不明白 readDataToLength 与新解决方案的意义。这是我将最初的阅读更改为:

现在在我的回调中,我只需执行以下操作:

所以一切都以一个原子有效载荷的形式出现。也许这是因为 Erlang {packet, 4} 的工作方式。我希望是的。否则,readDataToLength 的意义何在?没有办法在客户端提前知道消息的长度,那么在什么情况下可以使用该方法呢?

0 投票
1 回答
1912 浏览

objective-c - 服务器/客户端无法正确通信(CocoaAsyncSocket)

我有一个使用 CocoaAsyncSocket 的简单客户端和服务器应用程序。我可以使用客户端连接到服务器,并且可以在它们之间来回传递数据,并且委托方法似乎可以正确触发。我的问题是我只能将数据发送回传递给委托方法之一的 (AsyncSocket *) 对象。接受连接时,我将套接字添加到 NSMutableArray,但稍后如果我尝试使用套接字写入失败。所以

不起作用。下面是服务器和客户端的代码。初始通信确实有效,但是当我的通知被调用时,没有数据被发送,即使 NSLog 语句测试了数组中的套接字并获得了正确的 IP 地址和端口号:

服务器:

然后是客户:

帮助我stackoverflow,你是我唯一的希望!

0 投票
0 回答
1249 浏览

ssl - SSL/TSL 使用 CocoaAsyncSockets 和 Java Sockets

我想在可可中创建一个套接字服务器,使用 AsyncSockets 并与 Java 连接。如果 Java 是服务器,而 cocoa 是客户端,则启用 SSL 有效,但我需要另一种方式来工作。我想我只是缺少可可中的一些设置,所以这是我的 java 代码:我通过传递来启动客户端:

_

和我的可可代码:

一旦我从 java 客户端向可可服务器发送消息,我就会收到以下错误:

有人提示如何正确使用它吗?

0 投票
1 回答
430 浏览

iphone - 如何使用“iphone sockets”编写通信协议?

我已经为 Android 编写了一个客户端-服务器应用程序,我也在为 Iphone 做同样的事情。问题是,对于通信过程,使用 java 服务器和 Android 客户端,我编写了这样的程序(伪......):

现在我的问题是使用“iphone sockets”我不知道该怎么做。我正在使用 AsyncScoket 库,并且使用该库,读取不会阻塞(这对我来说很复杂),并且它使用了我真的不知道如何正确使用它的回调。

我想当读取完成时,如果发送的数据等于“Something1”或“Something2”,我应该在适当的回调中测试......但是,第一个小问题是它没有任何顺序。

我应该说我没有时间修改协议。

如果有人可以指导我,我将不胜感激。或者任何使用 AsyncSocket 库完成网络通信的代码示例。

谢谢!

0 投票
1 回答
714 浏览

objective-c - 可可 asyncudpsockets 不发送字节流

我有一个小的 MAC OS X 应用程序,它应该向服务器发送一个 UDP 数据报。

我想使用可可 asyncudpsockets ( http://code.google.com/p/cocoaasyncsocket/ ) 来执行此操作,但我遇到的问题是我调用了“sendData”方法但没有任何反应。

流是一个字节 * 包含数据报主机是一个 NSString 的 IP 地址。

有谁能够帮我?

0 投票
1 回答
190 浏览

iphone - AsyncSocket 适用于我的模拟器,但不适用于我的合作伙伴 - 连接取消错误

我和我的搭档检查了完全相同的代码,我们都使用同一个网络。

当我尝试使用 AsyncSocket 连接到套接字时,它可以工作。当我的伴侣做同样的事情时,它不会。

我试过谷歌搜索,但没有吸引力。有小费吗?

0 投票
1 回答
109 浏览

iphone - 我如何告诉我的 uitableviewcontroller 在异步套接字中重新加载数据

当我单击 tableViewController 中的按钮以在函数 didReadData 中获取我想要的数据以调用 tableView 的 reloadData 时,我正在使用 cocoaAsyncSocket。应该如何获得我的 tableView 的参考?请告诉我,如果我应该使用 appDelegate、单例或只是将其作为参数发送。或者如果我的设计都错了。谢谢

0 投票
1 回答
375 浏览

objective-c - asyncsocket 接受套接字但不连接到主机

我刚刚开始在我的objective-c应用程序中运行(我认为是)一个基本的asyncsocket,并且在与telnet连接时收到了didAcceptNewSocket:消息,但后来我突然断开了连接(“连接被外国主机关闭” ) 没有到达 didConnectToHost: 消息。它在示例中运行良好,我尝试复制在那里看到的所有内容,但无济于事。

我应该避免一些简单的陷阱吗?还有其他方法可以调试此问题吗?