GPRS通信模块,顾名思义,就是以通信为己任的模块。所以一旦连不上服务器,开发者会变得抓耳挠腮。
不论是AT还是Luat开发,如果连接服务器失败,模块底层返回的错误码都是难以解读的,开发者更是茫然无措。所以本文就介绍一下那些常见的错误码。
《在AirM2M 无线模块AT命令手册》中,已有相关章节向开发者讲述了TCP连接时出错返回的错误码:
不过开发者可能还是一头雾水——即使有错误码提示,也没有可能的原因及其相关解释,无法从根本上解决问题。
在此给大家讲解一下常见的错误码和可能造成错误的原因,帮助开发者更好的排查错误,顺利连接到服务器:
4 空间不足 检查RAM/ROM是否被用尽
5 网络问题 检查是否附着成功
6 路由表问题 域名解析失败或者在某一跳中出错
8 服务器域名/IP有误
11 服务器主动拒绝连接
12 连接服务器超时 通常是服务器不在线,或者网络通信不畅造成超时造成的
13 服务器主动关闭连接
14 连接被ISP关闭 ISP向服务器和模块发rst包,使得服务器和模块同时关闭连接
对于一些加密传输的场景,如果出现异常,也会返回错误码。而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 连接被关闭
通过错误码表和对应的解释,开发者就可以轻松的排查问题所在,顺利连接到服务器进行数据通信了。
43 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!