Я хочу отправить UIImage на сервер с сокетом. Я использую этот код из АЦП:Вопрос о Socket Streams на iPhone
- (IBAction)searchForSite:(id)sender
{
NSString *urlStr = [sender stringValue];
if (![urlStr isEqualToString:@""]) {
[searchField setEnabled:NO];
NSURL *website = [NSURL URLWithString:urlStr];
if (!website) {
NSLog(@"%@ is not a valid URL");
return;
}
NSHost *host = [NSHost hostWithName:[website host]];
// oStream is instance variable
[NSStream getStreamsToHost:host port:80 inputStream:nil
outputStream:&oStream];
[oStream retain];
[oStream setDelegate:self];
[oStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
forMode:NSDefaultRunLoopMode];
[oStream open];
}
}
Первый вопрос: Я хочу создать объект NSOutputStream, но я считаю, что это может быть initilized только с файлом, буфер, или в памяти. Как я могу вывести поток в сокет?
Второй вопрос: ссылка ADC указывает нам, что метод getStreamsToHost: port: inputStream: outputStream: возвращает объект, представляющий выходной поток на удаленный хост. Как хост может вернуть выходной поток самому себе? И где я могу добавить выходной поток в коде, чтобы отправить хозяин
Когда я могу добавить данные UIImage в oStream? После [oStream open] или до 'getStreamToHost'? –
Это должно быть после. Но помните, что если вы отправляете его на порт 80, вы, вероятно, отправляете его на веб-сервер. Таким образом, вам придется реализовать протокол HTTP самостоятельно. Пожалуйста, внимательно прочитайте мой ответ. Вы сможете передать свое изображение, если будете следовать моим предложениям. –
Для моего собственного приложения используется порт 1100. И он разделяет тот же сервер с окном мобильного приложения. Поэтому мне не позволено изменять протокол. Спасибо за ваш ответ и предложение в любом случае. –