【发布时间】:2011-12-01 03:46:11
【问题描述】:
我正在尝试使用 GCDAsyncSocket 连接到 WHOIS 服务器 (com.whois-servers.net:43)。我可以连接并写入服务器并调用didWriteDataWithTag:,但没有数据。 WHOIS 服务器确实发送了响应,但我无法阅读。
NSLog(@"Connecting to \"%@\" on port %hu...", host, port);
self.viewController.label.text = @"Connecting...";
NSError *error = nil;
if (![asyncSocket connectToHost:@"com.whois-servers.net" onPort:43 error:&error])
{
DDLogError(@"Error connecting: %@", error);
self.viewController.label.text = @"Oops";
}
NSString *requestStr = [NSString stringWithFormat:@"domain google.com\r\n\r\n"];
NSData *requestData = [requestStr dataUsingEncoding:NSUTF8StringEncoding];
[asyncSocket writeData:requestData withTimeout:-1 tag:0];
[asyncSocket readDataToData:[GCDAsyncSocket CRLFData] withTimeout:-1 tag:0];
这里是didReadData:
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
DDLogInfo(@"socket:%p didReadData:withTag:%d", sock, tag);
NSString *response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Data: %i", [data length]);
}
帮忙?!
【问题讨论】:
标签: objective-c ios asyncsocket