0

..我的应用程序仍在运行!

有一个关于当它进入睡眠+醒来时会发生什么的问题。我知道它在打电话:

- (void)AppDidBecomeActive:(NSNotification *)notification {

    if(jsocket){
        [jsocket release];
    }
    jsocket = [[johnsocket alloc] init];

    if(![jsocket connectViaSocket:(NSString*)ipaddress port:@"3660"]){
        //port 3660 is the XML port!!! good thing to know... 3663 is the binary protocol port.  yay!
        NSLog(@"error connecting from rooms page");
    }
}

(注意:我正在使用Asyncsocket.m,这是一个很棒的类,可以帮助管理套接字等......这就是 jsocket 的一个实例。这是一个 tcp 客户端应用程序。)

实际上,我在这个函数中有一个警报弹出窗口,以确保它被调用.. 你看,iphone/itouch 在插入 USB 时不会进入睡眠状态,这使得调试变得更加困难。

所以我的问题是,我怎样才能让它不崩溃?

4

1 回答 1

3

除非您对服务器有非常完全的控制权,否则您无法在任意时间睡眠后简单地“唤醒”套接字。远程服务器可能会在超时后关闭连接-无论如何您都应该假设。

您将不得不重新启动连接并从头开始与服务器同步您的状态。

于 2009-04-01T07:51:32.617 回答