【问题标题】:GCDAsyncSocket for iOS is not writing out the bufferiOS 的 GCDAsyncSocket 没有写出缓冲区
【发布时间】:2012-08-17 22:24:11
【问题描述】:

基本上我写一个 NSData 对象:

[asyncSocket writeData:JSONRequestData withTimeout:-1 tag:1];

运行时调用委托

- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag

但由于某种原因,当写入进入缓冲区时......它没有写入服务器。

当我停止构建时,我猜套接字决定写入所有内容,而服务器最终会看到它。

我将如何解决这个问题?没有办法刷新 CocoaAsyncSocket,因为它没有必要...... 我试过添加行尾,比如“/n”等等,但这也没有任何作用。

【问题讨论】:

标签: ios sockets cocoaasyncsocket gcdasyncsocket


【解决方案1】:

这是基于 user523234 的建议。

基本上,您正在写出的 NSData 需要有某种信号来告诉套接字不会有更多数据进入。

我添加了

[GCDAsyncSocket CRLFData];

到 NSData 对象

注意:要使用

appendData:

方法,必须将 NSData 转换为 NSMutableData。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多