【发布时间】:2011-01-17 09:32:54
【问题描述】:
我的程序由两部分组成 - 一个在不同线程上运行的服务器套接字(位于端口 3490)和一个用于测试服务器的客户端。现在服务器有一个 pdf 文件,我希望客户端在 UIWebView 中显示它。为此,我使用了以下方法:
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://127.0.0.1:3490/"]];
[webView loadRequest:urlRequest];
问题是,当服务器发布其请求时,我会进入控制台: 无法打开'':没有这样的文件或目录
在服务器中最重要的部分代码是:
int fileDesc = open(viewController.filePath, O_RDONLY);
if (fileDesc == -1) {
fprintf(stderr, "unable to open '%s': %s\n", viewController.filePath, strerror(errno));
exit(1);
}
off_t offset = 0;
off_t len = 0;
struct sf_hdtr headers;
headers.headers = NULL;
headers.trailers = NULL;
if (sendfile (fileDesc, new_fd, offset, &len, &headers, 0) == -1){
perror("send");
}
基本上我要做的是通过套接字将文件发送到客户端。可能这里出了点问题。 服务器的其余部分很长,所以我只提供它的链接(它已修改 - 我使用 sendFile 而不是发送)。 http://beej.us/guide/bgnet/output/html/multipage/clientserver.html#simpleserver
请帮忙
谢谢
亚历克斯
编辑:没关系。我解决了这个问题。似乎 open(viewController.filePath, O_RDONLY); 中需要 [viewController.filePath UTF8String];
【问题讨论】:
-
显然没有filePath。你期望的文件路径是什么?
-
没关系!问题在于 viewController.filePath 它需要是 [viewController.filePath UTF8String];你可以关闭这个帖子
-
把它作为一个答案并接受自己。
标签: iphone file sockets download send