STM32F407+RAK411断开TCP重新连接,不成功



  • 使用RAK411作为TCPClient,连接TCP Server端,然后发数据,如果关闭TCP server,然后在代码里面判断到TCP server关闭时,重新连接这时候会打印出接收到响应数据的socket_flag等于254,这是什么原因呢?在这种情况下如何完成TCP的重新连接?

    rak_open_socket(currentPort, DIST_PORT, RAK_MODULE_SOCKET_MODE, (uint32_t)DIST_IP);
    if(retval==RUN_OK)
    {
    retval=rak_read_packet(&uCmdRspFrame);
    if(retval==RUN_OK)
    {
    printf("RAK411 cmd 0x%2x: sock=%d, status=%d\r\n", uCmdRspFrame.socketFrameRcv.rspCode[0],
    uCmdRspFrame.socketFrameRcv.socket_flag,
    uCmdRspFrame.socketFrameRcv.status);
    ​ ​ ​}
    ​}
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252
    RAK411 cmd 0xb3: sock=254, status=252



  • 254就是-2啊, 这很正常啊??



  • @xc.c
    status=252是-4吧,sock根据编程手册应该是0~7,现在sock是252,这个不太理解。



  • 正常情况下Socket_flag会是0-7。异常就是负数。这很正常。


登录后回复
 

与 RAK支持中心 的连接断开,我们正在尝试重连,请耐心等待