【发布时间】:2010-06-27 23:46:23
【问题描述】:
所以我使用 Apple 的 PictureSharing/PictureSharingBrowser 示例来发送和接收数据。这在服务器端使用了一个 NSFileHandle,使用 NSFileHandle 的 writeData 方法发送图片。
NSFileHandle * incomingConnection = [[aNotification userInfo] objectForKey:NSFileHandleNotificationFileHandleItem];
[[aNotification object] acceptConnectionInBackgroundAndNotify];
[incomingConnection writeData:dataToWrite];
[incomingConnection closeFile];
在我想发送大量数据(在本例中为 1MB 的数据)之前,这似乎工作正常。当我尝试这样做时,应用程序在执行 writeData 方法时挂起。客户端甚至没有开始读取数据,它只是打开了连接,但什么也没有发生。 (它应该是逐块读取数据,而服务器一次发送所有数据)。
我猜某处发生了一些死锁,但我不确定在哪里。我试图寻找异步。用 NSFileHandle 逐个写入数据的方法,但是我找不到这样的方法。
任何指导都会有所帮助!
【问题讨论】:
-
嗯...我已经确定只有当我只有一个应用程序实例运行时才会发生这种情况,并且它既是服务器又是客户端。当我运行两个实例并将一个作为服务器,另一个作为客户端时,一切正常,但我需要能够让一个实例同时充当服务器和客户端(因为用户可以与其他人共享他们的信息并查看其他人分享的信息)
标签: objective-c cocoa macos nsfilehandle