AsyncSocket类中connecttohost调用有关问题
AsyncSocket类中connecttohost调用问题
如题,在ipad上运行并调试程序,代码如下:
BOOL pass = [socket1 connectToHost:@"www.126.com" onPort:80 error:nil]; //即使我断开wifi,connecttohost的返回值也是yes,求高手指点
------最佳解决方案--------------------
connectToHost经常会出现这种情况的,要用delegate 方法解决。
试试这个代码,应该就没问题了:
------其他解决方案--------------------
谢谢回复,虽然我已经试过了,这样确实可以。不过我在调试时碰到了EXC_BAD_ACCESS这样的错误,可能是因为我用的cocoa asyncsocket类不支持ARC,但是我的程序其他部分却是支持ARC的方式编译和执行的。不知道你那里有没有支持ARC的cocoa asyncsocket版本,google上的那个开源项目可能关了,不知道到哪去找,据说是7.1以上的版本。有的话麻烦发给我一下,我的邮箱是xuwei531120546@126.com
------其他解决方案--------------------
你可以直接通过xcode解决。
xcode 在编译得时候可以选择哪些文件时不使用ARC的,
比如这里用的 ASI库是不支持ARC的。你只要设置了 -fno-objec-arc 就行。
------其他解决方案--------------------
该回复于2012-12-08 14:12:25被管理员删除
如题,在ipad上运行并调试程序,代码如下:
//按下按钮时执行此函数
- (IBAction)connect:(id)sender {
//[super viewDidLoad];
AsyncSocket *socket1=[[AsyncSocket alloc] initWithDelegate:self];
BOOL pass = [socket1 connectToHost:@"www.126.com" onPort:80 error:nil]; //即使我断开wifi,connecttohost的返回值也是yes
if(pass)
{
[connectbtn setTitle:@"connected" forState:UIControlStateNormal];
}
[socket1 readDataWithTimeout:3 tag:1];
[socket1 writeData:[@"GET / HTTP/1.1\n\n" dataUsingEncoding:NSUTF8StringEncoding] withTimeout:3 tag:1];
}
BOOL pass = [socket1 connectToHost:@"www.126.com" onPort:80 error:nil]; //即使我断开wifi,connecttohost的返回值也是yes,求高手指点
------最佳解决方案--------------------
connectToHost经常会出现这种情况的,要用delegate 方法解决。
试试这个代码,应该就没问题了:
- (void)onSocket:(AsyncSocket *)sock didConnectToHost:(NSString *)host port:(UInt16)port {
NSLog(@"Connected To %@:%i.", host, port);
}
- (void)onSocket:(AsyncSocket *)sock willDisconnectWithError:(NSError *)err {
NSLog(@"Disconnecting. Error: %@", [err localizedDescription]);
}
- (void)onSocketDidDisconnect:(AsyncSocket *)sock {
NSLog(@"Disconnected.");
[socket setDelegate:nil];
[socket release];
socket = nil;
}
- (BOOL)onSocketWillConnect:(AsyncSocket *)sock {
NSLog(@"onSocketWillConnect:");
return YES;
}
------其他解决方案--------------------
谢谢回复,虽然我已经试过了,这样确实可以。不过我在调试时碰到了EXC_BAD_ACCESS这样的错误,可能是因为我用的cocoa asyncsocket类不支持ARC,但是我的程序其他部分却是支持ARC的方式编译和执行的。不知道你那里有没有支持ARC的cocoa asyncsocket版本,google上的那个开源项目可能关了,不知道到哪去找,据说是7.1以上的版本。有的话麻烦发给我一下,我的邮箱是xuwei531120546@126.com
------其他解决方案--------------------
你可以直接通过xcode解决。
xcode 在编译得时候可以选择哪些文件时不使用ARC的,
比如这里用的 ASI库是不支持ARC的。你只要设置了 -fno-objec-arc 就行。
------其他解决方案--------------------
该回复于2012-12-08 14:12:25被管理员删除