CH32V307在有设备接入进入Socket中断状态SINT_STAT_CONNECT时,如何获取连接设备的IP和port信息

void WCHNET_HandleSockInt(u8 socketid,u8 initstat)

{

    if(initstat & SINT_STAT_RECV)                                              //receive data

    {

        WCHNET_DataLoopback(socketid);                                         //Data loopback

    }

    if(initstat & SINT_STAT_CONNECT)                                           //connect successfully

    {

        if(sockFlag == NET_MODULE_TYPE_TCP_S){

            tcpsIsok = 1;

            WCHNET_ModifyRecvBuf(socketid,(u32)SocketRecvBuf[socketid],RECE_BUF_LEN);

        }

        if(sockFlag == NET_MODULE_TYPE_TCP_C){

            tcpcIsok = 1;

        }

        if(sockFlag == NET_MODULE_TYPE_UDP_C){

            udpcIsok = 1;

        }

        if(sockFlag == NET_MODULE_TYPE_UDP_S){

            udpsIsok = 1;

        }

        if(dtuDebug==1) printf("TCP Connect Success\r\n");

    }

.........

}

您好,307做tcp服务器时,可以在connect中断中打印SocketInf结构体中的目的IP和目的端口来获取对端的信息。

image.pngimage.pngimage.png


确认下,是不是UDPserver模式和UDPclient模式,都不会进入这个WCHNET_HandleSockInt中断

测试中没有收到串口的调试信息反馈,TCPserver和TCPclient可以收到


您好,UDP是没有连接中断的,可在接收中断打印SocketInf结构体获取对端的信息

image.png


只有登录才能回复,可以选择微信账号登录