使用GCDAsyncSocket库在iPhone应用程序中建立连接后,套接字立即断开。

7
我想读写OBD2 Wifi适配器中的数据,该适配器用于读取汽车数据和故障代码。为此,我正在使用GGCDAsyncSocket库进行套接字连接。
您可以下载CocoaAsyncSocket库源代码
但是它几乎只能保持连接10秒钟,有时候会保持40-50秒,然后终止。
日志显示:
Socket disconnected : Error Domain=NSPOSIXErrorDomain Code=57 "The operation couldn’t be completed. Socket is not connected" UserInfo=0x14cd50 {}
任何帮助或想法都将不胜感激!
提前致谢!
请查看下面的代码:
- (void)connectObdKeyHost:(NSString*)strHost port:(NSString *)strPort {
        [gcdAsyncSocket connectToHost:strHost onPort:portNo withTimeout:30 error:&error];
}

// GCDAsyncSocket Delegate Methods
- (void)socket:(GCDAsyncSocket *)sock didConnectToHost:(NSString *)host port:(uint16_t)port {
   NSLog(@"Socket connected : ");
}

- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err
{
    NSLog(@"Socket disconnected : %@",err);
}

遇到同样的问题:https://dev59.com/k4Xca4cB1Zd3GeqPP_YV - Mrug
1个回答

2
我尝试了以下方法:
    [gcdAsyncSocket connectToHost:strHost onPort:portNo error:&error];

现在它正在运行。


我尝试过了,但它似乎仍然在主机端立刻断开(通常在接受后2ms)。奇怪的是,客户端似乎没有意识到套接字掉线。此外,我得到的错误是null。有什么想法吗? - Reid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接