2013-10-17 4 views
0

hy, J'utilise cet exemple de code CocoaAsyncSocket-master (client udp) pour créer un serveur client dans des sockets, comment puis-je différencier les messages et comment envoyer une image uimage au socket? le code pour envoyer un message est:Uimage via les sockets

NSData *data = [msg dataUsingEncoding:NSUTF8StringEncoding]; 
    [udpSocket sendData:data toHost:host port:port withTimeout:-1 tag:tag]; 

Vous voulez savoir comment je peux différents messages à faire différents pense, et ont besoin de savoir comment envoyer une image ou un fichier throuhh la prise

grâce

déjà trouvé pour différencier les messages:

NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 

[params setObject:@"note" forKey:@"note"]; 
[params setObject:@"" forKey:@"ImagemData"]; 

NSData *data = [NSJSONSerialization dataWithJSONObject:params options:NSJSONWritingPrettyPrinted error:nil]; 

sais que je dois maintenant chaud pour convertir l'image à un NSData que je peux envoyer trought la prise, j'ai essayé ceci:

UIImage *img = [UIImage imageNamed:@"image1.jpeg"]; 
[params setObject:@UIImagePNGRepresentation(img) forKey:@"ImagemData"]; 

mais ne marche pas le travail

+0

Convertir une image pour NSData et essayer d'envoyer ces données .. mais je ne suis pas sûr à ce sujet. –

Répondre

0

Je l'ai fait comme ceci en utilisant TCP standard CocoaAsyncSocket/IP prises, mais il devrait fonctionner de la même:

UIImage* img; 

// ... populate img 

// get a JPEG representation of the UIImage 
NSData* data = UIImageJPEGRepresentation(img, 0.5f); // 0.5 is compression quality 

// you can also get it in PNG format 
// NSData* data = UIImagePNGRepresentation(img); 

[udpSocket sendData:data toHost:host port:port withTimeout:-1 tag:tag]; 

Je ne sais pas ce que vous entendez en différenciant les messages, donc je ne peux pas vous aider.

+0

donne une erreur: exception uncaught « NSInvalidArgumentException », motif: « type non valide dans JSON écriture (_NSInlineData) » –

+0

Je n'ai aucune expérience avec 'NSJSONSerialization' mais je présume qu'il est barfing parce qu'il ne peut pas convertir votre binaire encodée données d'image à JSON. Jetez un oeil à http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html - il y a un lien vers une extension qui va NSData permet la conversion en base64, qui est JSON- amical. –

+0

non, son fonctionnement maintenant, eu une autre erreur, wasnt this, merci –

Questions connexes