【发布时间】:2012-05-31 17:07:14
【问题描述】:
我正在尝试建立到本地服务器的 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 local nowhere remote nowhere has queued 0 reads 0 writes, no current read, no current write, read stream 0x299720 not open, write stream 0x299aa0 not open, not connected
当它说“无处”时,它当然应该有 IP 地址,但它没有。从网上的例子看,我的代码很好,但是当我在两台电脑和我的手机上运行时,我得到了这个“无处”的东西,所以我可能做错了什么。有人有想法吗?
谢谢!
编辑:澄清一下:如果我使用错误报告(通过将 NSError 实例传递给“connectToHost:onPort:error”和 NSLogging),我得到的只是(null)。
【问题讨论】:
-
您似乎缺少要发布的控制台日志(在“以下...”行之后)。可能是编辑把它们吃了。无论如何,如果你解决它,它会更容易回答你的问题。
-
哦,我猜是编辑把它去掉了,因为它被封装在尖括号中。它现在在那里,谢谢。
标签: objective-c ios cocoaasyncsocket