我正在使用CocoaAsyncTask并尝试连接到本地主机。
当我从模拟器运行它时,它可以工作(我正在使用提供的回显服务器对其进行检查)
但是当我在实际设备上运行它时,什么也没发生。
代码是:
if(![socket connectToHost:@"localhost" onPort:8080 error:nil]) {
NSLog(@"Error..");
}
-(void)socket:(GCDAsyncSocket *)socket didConnectToHost:(NSString *)host: port:(uint16_t)port {
NSLog(@"Connected");
}
有任何想法吗?
谢谢!
最佳答案
当您尝试连接到未本地安装的服务器(本地=完全相同的主机和接口)时,您提供的地址为“ localhost”。
请参见wikipedia entry on "localhost"。
它可以在模拟器上运行,因为它使用Mac的网络接口,因此“ localhost”是指您从中运行服务器以及客户端的计算机。
您将需要提供托管计算机(例如Mac)的本地IP地址。通常是类似192.168.1.100或192.168.0.100的东西-但更确切地说是;
192.168.xxx.xxx = C类不可路由地址
10.xxx.xxx.xxx = A类不可路由地址
xxx代表0到255之间的任何值。
要了解您的本地IP地址,请使用系统偏好设置->网络面板。检查“状态”下面的值“ ... IP地址xxx.xxx.xxx.xxx”
关于objective-c - CocoaAsyncTask无法连接真实设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10342529/