Frage

Ich verwende AsyncSocket einige UIImages von einem Gerät zu einem anderen zu bewegen.

Im Wesentlichen auf einem Gerät habe ich:

NSMutableData *data = UIImageJPEGRepresentation(image, 0.1);

if(isRunning){
    [sock writeData:data withTimeout:-1 tag:0];
}

So ein neues Bild wird an die Buchse (wie eine Webcam) jeder so oft hinzugefügt werden.

Dann auf dem anderen Gerät, ich rufe:

[listenSocket readDataWithTimeout:1 tag:0];

, die mit antwortet:

- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
    [responseData appendData:data];
    [listenSocket readDataWithTimeout:1 tag:0];
}

Im Grunde, was ich möchte in der Lage sein zu tun hat einen NSTimer geht der @selector (PullImages) nennen:

-(void) PullImages {

Hier möchte ich in der Lage sein, Bilder zu ziehen aus Response. Wie mache ich das? Es kann kein vollständiges Bild sein noch, könnte es mehrere Bilder sein, es eineinhalb Bilder sein könnte!

Ich möchte die NSData in jedes bestehende Bild analysieren!

}

Jede Hilfe? Vielen Dank im Voraus!

War es hilfreich?

Lösung

Sie haben Ihr eigenes Wrapper-Protokoll um die Bilder zu implementieren. Das kann so einfach sein wie die Länge der Bilddaten vor den eigentlichen Bilddaten zu senden. Wenn Daten empfangen, Sie wissen jetzt, wie viele Bytes Sie ziehen müssen, bevor Sie ein vollständiges Bild haben. Da jedes Bild wird der Strom aufzuschlüsseln, haben Sie die Länge des nächsten Bildes.

Da Sie von einem iPhone zu einem anderen senden, müssen Sie sich keine Sorgen machen über Endianess und kann nur ein 32-Bit-int an jedem Ende für die Größe verwendet werden.

Andere Tipps

Verwenden Sie einfach ein Trennzeichen getrennt, um die verschiedenen Bilder zu identifizieren. Wenn Sie das Trennzeichen fangen wissen Sie das andere Bild als nächstes kommt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top