自动绑定提示

通行证账号已自动为系统绑定,可直接登录。不用自动绑定,有账号,请进行绑定操作。

首页 > 开放工单 > 串口一次性传递大于10k数据出现socket中断怎么办
  • 客户区域:
  • 查看问题
回复: 12
串口一次性传递大于10k数据出现socket中断怎么办
产品型号: USR-GPRS-730

  1. *毅磊
    【您想要实现什么功能?】:使用DTU向socket服务器传送200k左右数据

    【您是如何连接和设置的?】:勾选服务器A,连接类型TCP,方式长连接

    【您遇到什么问题?】:在传输过程中,DTU方向传送的ip地址不变,但端口号会不时变化,导致socket中断,服务器无法接收完整信息
    附件:
    配置.png [70.37]

  2. 刘小雷

    您好  只要您设置好了 设备连接的服务器地址和端口是不会变化的

    模块串口缓存只有4K   发送的数据大于这个字节,数据就会丢


  3. *毅磊

    那么如果使用使用DTU向socket服务器可靠地传送200k左右数据有什么解决方案么?


  4. 刘小雷

    需要您将数据分包发送


  5. *毅磊

    您好,关于之前您回答的第一个问题,我想可能理解有点错误,我的意思并不是服务器的端口号会发生变化,而是传输过程中数据源地址(比如说移动运营商ip)的端口号会发生变化,变化后导致服务器认为这是一个新的socket连接,从而使原来的socket连接数据中断,不知是否与数据量过大有关,如果有关,需要怎么解决?

    我刚刚想在实验一次给您发送截图,但是好像模块出了点问题,点击进入配置状态时返回一个问号,服务器未打开的状态下linkA的指示灯也在闪烁,是需要恢复出厂设置么?


    附件:

  6. 刘小雷

    你好 每次连接的端口是会变化的  会有您所描述的情况  ,这个问题可以通过设置注册包来实现是同一台设备的连接(需要您服务器识别验证)

    无法进入配置状态:您检查一下您的串口波特率是否更改了  需要改为新的波特率


  7. *毅磊

    串口和DTU的波特率一直都是115200,换了别的波特率还是不行,就算把串口线拔了linkA还一直闪烁


  8. 刘小雷

    串口线和LINK状态没有关系,只要连接了服务器LINK就会亮的。

    您将设备恢复出厂设置用115200打开 看是否能够正常进入配置状态


  9. *毅磊

    您好,我之前可能表述的不清楚,我的服务器现在一直是关闭状态的,但是目前的 LINK灯一直有亮,我尝试了一下恢复出厂设置,波特率设置115200还是不起作用,感觉模块无法读取指令一样


    附件:

  10. 刘小雷

    您好 可以按住模块的reload按键(10秒以上恢复出厂设置)

    link灯是连接上服务器才会亮的,  有可能你是连接我们的出厂服务器所以会一直亮


  11. *毅磊

    谢谢,模块恢复正常了,我还是想请您给些建议,就是我想传递一个几百k的文件,分包传输的话每次都会切换端口号,导致socket链接数据中断,且可能会导致数据的缺失或顺序错乱,注册包验证的话我这边还不明白怎么验证,我现在还想咨询您两个问题:

    1、我们这个GPRS DTU模块是否不适合一次性传递大量数据,使用该模块传递是否比较牵强

    2、公司是否有相关的GPRS DTU模块缓存能够达到500k左右的(由于传输文件等)


  12. 刘小雷

    1  TCP长连接的方式只要和服务器建立连接后(只要没有断开)本地端口一般在一天左右才会变化, 您描述每包数据都要切换 感觉不太可能

    2  注册包验证就是可以在您的每包数据前都加上注册包,这样您的服务器就可以知道设置某个设备发送过来的数据了。分包发送的情况下需要将发送时间间隔设置好,例如您在9600波特率下 发送100个字节需要100ms  那么下一包数据 要100ms后再发送 否则可能会数据追尾造成数据丢失

    3  我司DTU最大串口缓存只能到10K  无法到500K。  10K型号为USR-G780


  13. *毅磊

    好的,十分感谢,我这两天再按照您的建议测试一下,后续有问题再请教您

若此工单对解决您的问题有帮助,请点个赞;您的参与,是对我们最大的鼓励。 有用
标签:GPRS DTU