iphone - ios中XMPPFramework的TURNSocket连接成功后如何接收文件?

标签 iphone ios file xmpp

我想使用 TURNSocket 在两个用户之间传输文件。

User1: (iphone sumulator) 用户 2:(Spark 用户)

现在套接字已连接,我想通过 Spark 从 User2 向 User1 发送文件。 iphone sumulator 可以收到这些消息:

<iq xmlns="jabber:client" id="P1J6b-29" to="User1@local/75694fce" from="User2@local/Spark 2.6.3"     type="set">
  <si xmlns="http://jabber.org/protocol/si" id="jsi_8334411215933911079" mime-type="image/png"
      profile="http://jabber.org/protocol/si/profile/file-transfer">
    <file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="a2.png" size="12618">
      <desc>Sending file</desc>
    </file>
    <feature xmlns="http://jabber.org/protocol/feature-neg">
      <x xmlns="jabber:x:data" type="form">
        <field var="stream-method" type="list-single">
          <option>
            <value>http://jabber.org/protocol/bytestreams</value>
          </option>
          <option>
            <value>http://jabber.org/protocol/ibb</value>
          </option>
        </field>
      </x>
    </feature>
  </si>
</iq>

我在 XMPP Sending/Receving file in iphone sdk ...? 中看到了这些 关于如何在didSucceed 方法中处理的主题,但我不知道如何在iphone sumulator 上接收Spark 用户发送的文件。

然后,在您的didSucceed 实现中,在传入的套接字上发送数据,使用:

- (void)writeData:(NSData *)data 
  withTimeout:(NSTimeInterval)timeout 
          tag:(long)tag;

最后,关闭套接字:

- (void)disconnectAfterWriting;

那么如何编写代码以通过此方法或其他方法接收文件?

- (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket {
    // Where is the NSData that can be find to used in writeData method ?
}

最佳答案

试用 FastSocket https://github.com/dreese/fast-socket .最好用于 iPhone 或服务器之间的 TCP 连接。请阅读文档(尤其是单元测试)以获取有关如何使用它的非常详细的说明。您需要知道相互连接所需的每个设备的 IP。

关于iphone - ios中XMPPFramework的TURNSocket连接成功后如何接收文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382837/

相关文章:

iphone - 在游戏中调用 addObject 时出现 IOS 8 XCode 6 beta 4 异常

objective-c - 使用 `valueForKey` 访问 UIBarButtonItem 中的 View ,违反私有(private) API?

java - 通过Java套接字发送多个文件

iphone - ARC 不允许将 Objective-C 指针隐式转换为 'void *' - sqlite3

iphone - 位置 :fixed ios 6. 1 在定义视口(viewport)元标记时不起作用

android - 所有移动浏览器的完整网页和禁用缩放视口(viewport)元标记

ios - 如何从 block 内部修改非局部(全局)变量?

ios - 将委托(delegate)分配给类的实例

android - Android-无法在真实计算机上从SD卡读取TXT文件?

c - 从c中的文件中接受浮点值