iOS暂停期间的套接字断开呼叫不会断开套接字

时间:2013-01-09 07:03:45

标签: ios sockets

我在我的应用程序中使用GCDAsyncSocket。我有一些问题。

当应用程序进入后台时,我想关闭套接字。在Suspend applicationDidEnterBackground调用期间,我执行以下代码,但它不会断开套接字。 (我通过连接的主机检查这个)

[asyncSocket setDelegate:nil]; 
[asyncSocket disconnect];
[asyncSocket setDelegate:self];

一旦我待机,即使我打电话,插座也没有关闭。 60秒后iOS关闭了套接字,因为我们处于后台并且事情恢复正常但发送方丢失了60秒的数据。我可能没有正确使用API​​,但也可能是一个问题。

下面的其余代码供参考:

初​​始化

 dispatch_queue_t socketQ = dispatch_queue_create("socketQueue", NULL);
 asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:socketQ];

 if(![asyncSocket connectedPort])
 {
    if (![asyncSocket acceptOnPort:WIFI_BOX_PORT error:&error])
    {
      NSLog(@"Problem with opening Port: %@", error);
    }
    else
   {
       NSLog(@"Port opened, waiting for connection");
    }
 }

0 个答案:

没有答案