Я использую ASyncSocket для перемещения некоторых UIImages с одного устройства на другое.Как вытащить UIImages из NSData из сокета
По существу, на одном устройстве, у меня есть:
NSMutableData *data = UIImageJPEGRepresentation(image, 0.1);
if(isRunning){
[sock writeData:data withTimeout:-1 tag:0];
}
Так новый образ будет добавлен в сокет каждый так часто (например, веб-камера).
Затем на другом устройстве, я звоню:
[listenSocket readDataWithTimeout:1 tag:0];
, который ответит:
- (void)onSocket:(AsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
{
[responseData appendData:data];
[listenSocket readDataWithTimeout:1 tag:0];
}
По существу, то, что я хочу быть в состоянии сделать, это иметь NSTimer собирается который будем называть @selector (PullImages):
-(void) PullImages {
здесь, я хочу, чтобы быть в состоянии вывести изображения из ResponseD ата. Как мне это сделать? Возможно, изображение не может быть полным, может быть несколько изображений, может быть полтора изображения!
Я хочу проанализировать NSData в каждом существующем изображении!
}
Любая помощь? Заранее спасибо!
А, да, я надеялся не делать этого. Как я могу убедиться, что сначала получу целое число? Могу ли я предположить, что вещи сбрасываются как int, image, int, image и т. Д.? Итак, я прочитал первые несколько байтов, затем прочитал количество указанных байтов, затем прочитал следующие несколько байтов, а затем прочитал количество байтов, указанное? Не могли бы вы привести пример или макет? Мне не нужен специальный код. –
Если вы используете tcp-сокет, то да, вы можете предположить, что ваши длины появятся перед изображением. Затем вы прочитаете первые 4 байта (для вашего int), затем прочитайте значение этих 4 байтов в вашем буфере данных. – Elfred