ソケットを使用してサーバーにUIImageを送信します。私はADCからこのコードを使用しています: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ことができることがわかります。どうすればストリームをソケットに出力できますか?
2番目の質問:ADCのリファレンスは、getStreamsToHost:port:inputStream:outputStreamメソッドがリモートホストに出力ストリームを表すオブジェクトを返すことを示しています。ホストはどのようにして出力ストリームを自分自身に返すことができますか? はすでにソケットでそれを初期化です
あなた:そして、どこでホスト
いつoStreamにUIImageデータを追加できますか? [oStream open]または 'getStreamToHost'の前 –
それは後になっています。ただし、80ポートに送信している場合は、Webサーバーに送信している可能性があります。したがって、HTTPプロトコルを自分で実装する必要があります。私の答えをよく読んでください。あなたが私の提案に従うならば、イメージを送信することができます。 –
自分のアプリでは、ポート1100が使用されます。そして、それはウィンドウモバイルアプリと同じサーバーを共有します。だから私はプロトコルを変更することは許されません。とにかくあなたの答えと提案に感謝します。 –