CH32V307 使用你们自研协议栈,用作TCP client可以,用作tcp server接收不到数据?

CH32V307 使用你们自研协议栈,用作TCP client可以,用作tcp server,可以连接成功,但是接收不到数据?

void WCHNET_CreatTcpSocket(void)

{

   u8 i;

   SOCK_INF TmpSocketInf;                                                       /* 创建临时socket变量 */


   memset((void *)&TmpSocketInf,0,sizeof(SOCK_INF));                            /* 库内部会将此变量复制,所以最好将临时变量先全部清零 */

   //memcpy((void *)TmpSocketInf.IPAddr,DESIP,4);                                 /* 设置目的IP地址 */

  // TmpSocketInf.DesPort  = 8888;                                                /* 设置目的端口 */

   TmpSocketInf.SourPort = 8800;//srcport++;                                                /* 设置源端口 */

   TmpSocketInf.ProtoType = PROTO_TYPE_TCP;                                     /* 设置socekt类型 */

   TmpSocketInf.RecvStartPoint = (u32)SocketRecvBuf;                         /* 设置接收缓冲区的接收缓冲区 */

   TmpSocketInf.RecvBufLen = RECE_BUF_LEN ;                                     /* 设置接收缓冲区的接收长度 */

   i = WCHNET_SocketCreat(&SocketId,&TmpSocketInf);                           /* 创建socket,将返回的socket索引保存在SocketId中 */

  printf("WCHNET_CreatTcpSocket  %x\r\n",SocketId) ;                                                       /* 检查错误 */

  // i = WCHNET_SocketConnect(SocketId);                                        /* TCP连接 */

  i = WCHNET_SocketListen(SocketId);

                                                            /* 检查错误 */

                                                             /* 检查错误 */

}


您好,您首先可以先用我司EVT包程序里面的TCP_Server程序进行尝试,使用网络调试助手看是否能正常连接服务器。针对您的代码,您可以看一下,您代码里面创建Socket以及开启TCP监听的返回值是否正确,如果是正确的,您可以尝试pingCH32V307看能否Ping通。


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