Ich möchte ein UIImage an einen Server mit Socket senden. Ich verwende diesen Code von ADC:Frage zu Socket Streams auf dem 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];
}
}
Erste Frage: Ich möchte ein NSOutputStream-Objekt erstellen, aber ich finde, dass es nur mit einer Datei, einem Puffer oder Speicher initilized werden kann. Wie kann ich den Stream dann an einen Socket ausgeben? Die zweite Frage: Die ADC-Referenz besagt, dass die Methode getStreamsToHost: port: inputStream: outputStream: das Objekt zurückgibt, das einen Ausgabestream für den entfernten Host darstellt. Wie kann der Host den Ausgabestream an sich selbst zurückgeben? Und wo kann ich Ausgangsstrom im Code hinzufügen zu dem Host
Wann kann ich dem OStream UIImage-Daten hinzufügen? Nach [oStream open] oder vor 'getStreamToHost'? –
Es ist danach. Aber denken Sie daran, wenn Sie es an den Port 80 senden, senden Sie es wahrscheinlich an einen Webserver. Sie müssen also das HTTP-Protokoll selbst implementieren. Bitte lies meine Antwort sorgfältig durch. Sie können Ihr Bild übertragen, wenn Sie meinen Vorschlägen folgen. –
Für meine eigene App wird Port 1100 verwendet. Und es teilt den gleichen Server mit einer Windows Mobile App. Also werde ich das Protokoll nicht ändern dürfen. Danke für deine Antwort und deinen Vorschlag. –