2013-10-17 75 views
0

hy, 我使用此示例代碼CocoaAsyncSocket-master(udp客戶端)在套接字中創建一個客戶端服務器,我如何區分這些消息以及如何發送一個uimage引發套接字?發送消息的代碼是:Uimage通過套接字

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

想知道我可以在不同的消息做不同的認爲,並且需要知道如何發送圖像或文件throuhh插座

感謝

已經找到了區分消息:

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

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

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

知道我現在需要熱圖像轉換成我可以給trought插座一個NSData的,我想這:

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

但不工作

+0

將圖像轉換爲nsdata並嘗試發送該數據..但我不確定這一點。 –

回答

0

我已經做了這樣的使用標準CocoaAsyncSocket TCP/IP套接字,但它應該工作一樣:

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]; 

我不知道可以區分的消息,所以我不能幫你那裏的意思。

+0

提供了一個錯誤:未捕獲異常'NSInvalidArgumentException',原因:'在JSON寫入無效類型(_NSInlineData)' –

+0

我沒有任何'NSJSONSerialization'的經驗,但我認爲它是barfing,因爲它不能轉換你的二進制編碼圖像數據到JSON。看看http://www.cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html - 這裏有一個指向NSData擴展的鏈接,它允許轉換爲base64,這是JSON-友善。 –

+0

不,現在正在工作,發生了另一個錯誤,不是,謝謝 –