我正在尝试建立一个到本地服务器的TCP连接,因为几乎每个人都同意Asyncsocket是可行的方法,所以我也选择了它。但是,我在最基本的级别遇到了问题: Asyncsocket实例没有本地或远程地址。我没有太多的代码,但我有以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
AsyncSocket *socket = [[AsyncSocket alloc] initWithDelegate:self];
[socket connectToHost:@"www.google.com" onPort:80 error:nil];
}
- (BOOL)onSocketWillConnect:(AsyncSocket *)sock {
NSLog(@"%@", sock);
return YES;
}
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port {
NSLog(@"%@", host);
}以下内容显示在控制台中(从onSocketWillConnect中的NSLog ):
AsyncSocket 0x298de0本地无处不在远程无处排队0读取0写入,无当前读取,无当前写入,读取流0x299720未打开,写入流0x299aa0未打开,未连接
它说“无处可寻”,当然它应该有IP地址,但它没有。从网上的例子看,我的代码看起来很好,但当我在两台电脑和我的手机上运行时,我得到了“无处可去”的东西,所以我可能做错了什么。有谁有主意吗?
谢谢!
编辑:为了澄清:如果我使用错误报告(通过将一个NSError实例传递给"connectToHost:onPort: error“并对其执行NSLogging操作),我得到的结果只有(null)。
发布于 2012-06-01 09:40:31
哇,这太尴尬了。我需要创建一个ivar来存储AsyncSocket,因为如果没有它,它就会在viewDidLoad完成后超出范围,这就是为什么我的onSocket:didConnectToHost:port没有被调用的原因。
https://stackoverflow.com/questions/10838094
复制相似问题