那些让人看不懂的错误码和解决方法

GPRS通信模块,顾名思义,就是以通信为己任的模块。所以一旦连不上服务器,开发者会变得抓耳挠腮。

 不论是AT还是Luat开发,如果连接服务器失败,模块底层返回的错误码都是难以解读的,开发者更是茫然无措。所以本文就介绍一下那些常见的错误码。

 

TCP错误码

《在AirM2M 无线模块AT命令手册》中,已有相关章节向开发者讲述了TCP连接时出错返回的错误码:


不过开发者可能还是一头雾水——即使有错误码提示,也没有可能的原因及其相关解释,无法从根本上解决问题。

在此给大家讲解一下常见的错误码和可能造成错误的原因,帮助开发者更好的排查错误,顺利连接到服务器:

4     空间不足       检查RAM/ROM是否被用尽

5     网络问题       检查是否附着成功

6     路由表问题    域名解析失败或者在某一跳中出错

8     服务器域名/IP有误

11    服务器主动拒绝连接

12    连接服务器超时    通常是服务器不在线,或者网络通信不畅造成超时造成的

13    服务器主动关闭连接

14    连接被ISP关闭    ISP向服务器和模块发rst包,使得服务器和模块同时关闭连接

 

SSL错误码

对于一些加密传输的场景,如果出现异常,也会返回错误码。而SSL的错误码,是和TCP不同的。


同样的,在这里给大家讲解一下常见的错误码和可能造成错误的原因,帮助开发者更好的排查错误,顺利连接到服务器:

4     域名解析出错       请检查域名A记录是否正确

9     分配内存失败       请检查内存是否不足,如果是,请进行垃圾回收:http://oldask.openluat.com/article/44

11    PDP没有激活       应先激活并附着

12    TCP连接失败              服务器不在线,或者连接超时

13    握手失败       服务器不支持SSL

21~24     本地文件读取失败       下载的时候没有完整对应的文件

25    证书不符

27~28     IO错误

29~32     内存不足       请检查内存是否不足,如果是,请进行垃圾回收:http://oldask.openluat.com/article/44

35    证书校验失败       通常是证书有效期错误(不应大于2032年,尤其是自签的证书要格外注意),或者模块本地时间错误造成(NTP校准模块时钟后,再进行连接

37    连接被关闭


结束语

通过错误码表和对应的解释,开发者就可以轻松的排查问题所在,顺利连接到服务器进行数据通信了。

上次更新 2021-01-28