我创建了一个基于Socket的Simple Chat应用程序。 帖子:Socket Based iPhone App帮我创建了这个。通过Socket发送文件(iOS)
我现在想通过套接字发送/接收文件。 请给我指点,我可以如何去实现这一点。
干杯, Roshit
编辑:
代码用于连接到插座:
NSString *aHostName = @"xx.xx.xx.xx";
NSInteger aPort = 1234;
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)aHostName, aPort, &readStream, &writeStream);
self.inputStream = (NSInputStream *)readStream;
self.outputStream = (NSOutputStream *)writeStream;
[self.inputStream setDelegate:self];
[self.outputStream setDelegate:self];
[self.inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[self.inputStream open];
[self.outputStream open];
代码用于发送数据
NSData *aData = [[NSData alloc] initWithData:[iRequestAPI dataUsingEncoding:NSASCIIStringEncoding]];
[self.outputStream write:[aData bytes] maxLength:[aData length]];
[aData release];
其中, iRequestAPI是th必须发送的字符串。
现在,当我尝试通过套接字发送文件时,考虑到我将文件转换为NSData并使用[self.outputStream write:[aData bytes] maxLength:[aData length]];
的事实,可能会由于连接带宽而导致整个文件未发送。 如果整个文件没有发送,如何确保发送剩下的文件。
这是通过套接字发送文件的正确方法。 请建议..
这个问题太含糊。您需要更具体地了解您遇到问题的部分。你知道如何打开和读取文件吗?你知道如何扩展你的协议来支持发送文件吗? – 2012-03-01 08:11:25
不是。当涉及套接字时,我真的不知道与文件处理有关的任何事情。我必须发送的文件保存在应用程序的文档目录中。 – Roshit 2012-03-01 11:12:07
我问了一个问题,我没有得到任何满意的解释。真的没有看到投票的必要性...如果你投下了票,你必须对此有一个很好的回答,或者至少指向解决方案。投票不是我关心的。有人请给我一个解决方案。 – Roshit 2012-03-01 11:15:28