2012-05-31 155 views
0

我试图建立一个TCP连接到本地服务器,并且几乎所有人都同意Asyncsocket是要走的路,我也是这么做的。但是,我遇到了最基本的问题: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); 
} 

下在控制台中显示出来(从NSLog的在onSocketWillConnect):

AsyncSocket 0x298de0本地无处远程无处已排队0读取0写入,没有当前读取,没有当前写入,读取流0x299720未打开,写入流0x299aa0未打开,未连接

它说“无处”,当然它应该有IP地址,但它不'吨。从网上的例子来看,我的代码看起来很好,但当我在两台电脑和手机上运行时,却遇到这种“无处”的事情,所以我可能做错了什么。任何人有想法?

谢谢!为了说明:如果我使用错误报告(通过将NSError实例传递给“connectToHost:onPort:error”和NSLogging),我所得到的全部是(null)

+0

你似乎缺少你想后控制台日志(线“以下......”之后)。可能编辑吃了他们。无论如何,如果你修复它,回答你的问题会更容易。 – abarnert

+0

哦,我想编辑删除它是因为它被封装在尖括号中。它现在在那里,谢谢。 –

回答

0

哇,这很尴尬。我需要制作一个ivar来存储AsyncSocket,因为没有它,它在viewDidLoad完成后超出了范围,这就是为什么我的onSocket:didConnectToHost:端口没有被调用。