0
這個問題與使用一些C++ - 頭文件的ObjectiveC編寫的iOS項目相關。從套接字切換到cocoaasyncsockets(與字符串轉換有關的問題)
我正在使用此方法將消息發送到使用TCP的服務器。正如你所看到的,有一個叫做C++的方法修改了字符串以符合特定的協議。該字符串被寫入流中。
-(void) writeToServer:(NSString*) str
{
int len = [str length];
const char* in_ = new char[len];
char* out_ = new char[len];
in_ = [str UTF8String];
len = binary8BitStringTo7BitStringEncoding::encode(in_, len, out_);
uint8_t* test = new uint8_t[len];
for (int i=0; i<len; ++i) {
test[i] = out_[i];
}
[outputStream write:test maxLength:len];
}
我打算使用的,而不是直接處理流的cocoaasyncsocket框架(http://code.google.com/p/cocoaasyncsocket/)。問題是:如何在使用此框架時實現相同的功能?
這是寫入使用這個框架的服務器看起來像:
NSString *warningMsg = @"Are you still there?\r\n";
NSData *warningData = [warningMsg dataUsingEncoding:NSUTF8StringEncoding];
[sock writeData:warningData withTimeout:-1 tag:WARNING_MSG];
這些是用於編碼和解碼的兩種方法
unsigned int decode(const char* string, unsigned int len, char* out);
unsigned int encode(const char* string, unsigned int len, char* out);
其實我要找的定義用於將char *(編碼方法的結果)發送到服務器的方式,但我不確定整個「NSString *將char *轉換爲uint8_t *轉換爲NSString *轉換」。使用此框架來處理這種轉換以達到相同結果的最佳方法是什麼?
在此先感謝您的答案和花費的時間!