我正在使用CocoaAsyncTask并尝试连接到localhost。 当我从模拟器运行它时,它工作(我正在使用提供的echo服务器检查它) 但是当我在实际设备上运行它时,没有任何反应.. 代码是:
if(![socket connectToHost:@"localhost" onPort:8080 error:nil]) {
NSLog(@"Error..");
}
-(void)socket:(GCDAsyncSocket *)socket didConnectToHost:(NSString *)host: port:(uint16_t)port {
NSLog(@"Connected");
}
有什么想法吗? 谢谢!
答案 0 :(得分:2)
当您尝试连接到未在本地安装的服务器(local =在完全相同的主机和接口上)时,您将地址设置为“localhost”。 请参阅wikipedia entry on "localhost"。
它可以在模拟器中使用,因为它使用Mac的网络接口,因此“localhost”指的是您运行服务器的机器以及客户端。
您需要提供托管计算机的本地IP地址(例如您的Mac)。通常这就像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”