【发布时间】:2010-01-31 18:45:28
【问题描述】:
我正在接收到服务器的成功连接,并且我在我的回调函数中:
我正在尝试获取主机的名称并将其打印到我的控制台:
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);
}
当我在调试模式下运行应用程序时,我可以看到分配给 name 的 IP 地址值,因此它成功获取 name ,每个值都是 uint8_t.. 对等长度显示我 16; 我的问题是将其转换为 NSData 然后 NSString...
输出: 2010-01-31 13:57:58.671 已连接对等方的 IP 地址:(null)
我的字符串被输出为 NULL,
感谢任何建议,谢谢....
【问题讨论】:
-
你有没有找到有用的东西?