我收到一個到服務器的連接成功,我在我的回調函數:轉換的NSData到NSString的
我試圖讓主機的名稱,並打印到我的控制檯:
if(theType == kCFSocketConnectCallBack){
NSLog(@"Connection is accepted");
CFSocketNativeHandle nativeSocket = CFSocketGetNative(theSocket);
uint8_t name[SOCK_MAXADDRLEN];
socklen_t namelen = sizeof(name);
NSData *peer = nil;
if (getpeername(nativeSocket, (struct sockaddr *)name, &namelen) == 0) {
peer = [NSData dataWithBytes:name length:namelen];
NSString *string = [[NSString alloc] initWithData:peer encoding:NSUTF8StringEncoding];
NSLog(@"IP adress of connected peer: %@", string);
}
當我在調試模式下運行應用程序時,我可以看到分配給名稱的IP地址值,所以它成功獲取名稱,每個值都是uint8_t .. 對等長度顯示給我16; 我的問題將其轉換爲NSData的則的NSString ...
輸出: 2010-01-31 13:57:58.671連接對等的IP地址:(空)
我串正被作爲NULL輸出,
任何建議表示讚賞,感謝....
你有沒有發現一些工作? – 2010-05-11 21:11:56