2010-04-08 104 views
1

如何通過iPhone上的套接字發送圖像。我嘗試使用字符串我使用的代碼如下,現在我需要通過套接字發送圖像。通過iPhone上的套接字發送圖像

CFWriteStreamRef writeStream = NULL; 

CFStringRef host = CFSTR("192.168.1.211"); 
UInt32 port = 8001; 

CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, NULL, &writeStream); 

CFWriteStreamSetProperty(writeStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue); 

if(!CFWriteStreamOpen(writeStream)) { 
    NSLog(@"Error Opening Socket"); 
} 
else{ 


    UInt8 buf[] = "Abc";   


    int bytesWritten = CFWriteStreamWrite(writeStream, buf, strlen((char*)buf)); 

    NSLog(@"Written: %d", bytesWritten); 

    if (bytesWritten < 0) { 
     CFStreamError error = CFWriteStreamGetError(writeStream); 

    } 

} 

問候,

+0

你將需要提供更大量的代碼片段細節到你的問題。目前它的回答太寬泛。你有沒有嘗試過自己?顯示您正在嘗試使用的代碼。 – Jasarien 2010-04-08 08:30:10

+0

我已經添加了我使用的代碼。請幫助我找到解決方案 – Timmi 2010-04-08 10:58:11

+0

如果這不是正確的方法請告訴我正確的方法 – Timmi 2010-04-08 11:26:20

回答

1

的圖像必須被轉換到BASE64串和通過插座傳送。

這裏是基地-64轉換的目標C

- (NSString *)encodeToBase64String:(UIImage *)image { 
return [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength]; 
} 

斯威夫特

let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength) 

這裏是reference