RA6M2 FreeRTOS TCP上的疑问

PC端做server,RA6M2做client,在TCP socket 确认连接后,单独使用recv函数或send函数都是正常的,但以下使用方法的话则不会发送数据出来,请问是什么问题?

if(FreeRTOS_connect(xSocket, &xServerAdd, sizeof(xServerAdd)) == 0)

{

    xReturned = FreeRTOS_recv(xSocket, TCPRecvString, BUFFER_SIZES, 0);
    if(xReturned > 0)

    {

          FreeRTOS_send(xSocket, TCPRecvString, strlen(TCPRecvString), 0);

    }

}

Parents Reply Children
  • FreeRTOS_send的问题,接收是可以进行,但是发送不了,只能重新创建套接字才可以正常

  • 那这段描述“单独使用recv函数或send函数都是正常的”跟你所更新的还不一样,你可以试一下链接中的代码能否实现吗?

    如果按照你的描述“发送不了,重新创建套接字才可以正常”的话,那重新创建的套接字和第一次接收时所用的套接字区别在哪里呢?

  • 可能是我表述的不太准确,按上述函数框架, if(xReturned > 0)可以进入,证明接收函数是没有问题的,但是发送函数发送不出来。而单独使用recv函数或send函数是不关上述函数框架,如recv函数我是在接收到数据后使用串口打印数据出来是正常的。send函数是直接输出字符也可以。