CH565使用官方提供的TCP/IP协议栈问题咨询

CH565使用官方TCP/IP协议栈(CH569NETLIB.h中 #define CH569NET_LIB_VER  0x02),在UDP通信中,通过计算机发送9字节的UDP报文,CH565回复报文wireshark抓包提示FCS校验错误:

1667877529611.png

报文展开的话,具体内容如下:

1667877626683.png

真实的UDP 9字节报文应该是24 1a c0 a8 00 63 00 0d 0a,但是可以看到,实际上最后多出来13个字节,其中最后的4个字节c0 a8 00 01被直接当成FCS校验了。

我的代码如下:

void CFG_Socket_CallBack(struct _SCOK_INF *socinf,UINT32 ipaddr,UINT16 port,UINT8 *data,UINT32 len)

{

  unsigned int net_mask_value;

  UINT32 bufLen;

  char rc;

  unsigned char dst_ip[4];

  bufLen = len;

  Int2Char(flip32(ipaddr), dst_ip);


  memcpy(CFG_Socket.socketInf.IPAddr,dst_ip,4);

  CFG_Socket.socketInf.DesPort = port;

  printf("%d bytes\r\n",bufLen);//此处打印的值为9,说明bufLen没有问题

  if((*data==0x24)&&(*(data+1)==0x11))//IP地址设置

  {

      rc = CH569NET_SocketUdpSendTo(CFG_Socket.socketID, data, &bufLen,CFG_Socket.socketInf.IPAddr,(UINT16)CFG_Socket.socketInf.DesPort);//收到报文后,原路返回

      if(rc!=0)

          printf ("CFG_Socket send error!0x%X\r\n",rc);

  }


请问这个问题可能是什么原因?

参考UDP_Client例程,实际的包发送,应当调用CH569NET_SocketSend()函数。


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