我正在使用UPNP iOS应用程序。我正在尝试从远程服务器下载视频,然后使用GCDWebserver将其发送到客户端。
以下是步骤:
连接发送了一段时间数据,但随后我遇到以下错误:
写入套接字29时出错:管道损坏(32)
我进行了一些研究,发现只有GCDWebserverFileResponse才能满足Content-Range。
以下是代码:
GCDWebServerStreamedResponse *streamedResponse = [GCDWebServerStreamedResponse responseWithContentType:@"video/mp4" asyncStreamBlock:^(GCDWebServerBodyReaderCompletionBlock completionBlock) {
self.cb = completionBlock;
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *urlSession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:remoteUrl]];
[urlRequest addValue:[request.headers objectForKey:@"Range"] forHTTPHeaderField:@"Range"];
NSURLSessionDataTask *dataTask = [urlSession dataTaskWithRequest: urlRequest];
[dataTask resume];
}];
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
NSLog(@"got data size == %lu", data.length);
self.cb(data, nil);
}
我发现了类似的问题,但未得到答复。