微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3000 rec()阻塞问题

CC3000 rec()阻塞问题

时间:10-02 整理:3721RD 点击:

您好:

        cc3000 在接收数据的时候,用的是阻塞,但是过了一段时间,server并没有发送数据,但是跳出了阻塞状态,这个问题是怎么回事儿?如何解决?

     谢谢!

RECV的返回值是多少?

返回值是-57

返回值是-57

如果你的recv没有时间限制的话,那就是socket断掉了,可以抓一下空口的数据包看一下。

socket断掉的原因是一段时间没有数据的话,cc3000会自动断开连接吗?时间限制该如何设置那?

你把socket的那段代码贴上来看一下。

代码:

void connectSocket(long * Socket)
{
    creatAndOpenSocket(Socket);
    firstTimeConnected=NotFirstTimeConnect ;
    SocketConnected=-1;
    // the family is always AF_INET
    tSocketAddr.sa_family = AF_INET;
    // the destination port
    tSocketAddr.sa_data[0] = (ClientPort)>>8;
    tSocketAddr.sa_data[1] = (unsigned char)(ClientPort);

    // the destination IP address
    tSocketAddr.sa_data[2] = ServerIPaddress[0];
    tSocketAddr.sa_data[3] = ServerIPaddress[1];
    tSocketAddr.sa_data[4] = ServerIPaddress[2];
    tSocketAddr.sa_data[5] = ServerIPaddress[3];

    while(SocketConnected==-1)
    {
        SocketConnected=connect(*Socket,&tSocketAddr,sizeof(sockaddr));
        if(SocketConnected==0)
        {
            turnLedOn(6);
        }
        else
        {
            turnLedOn(6);
            __delay_cycles(600000);
            turnLedOff(6);
            __delay_cycles(600000);
        }
    }
}



void creatAndOpenSocket(long * Socket)
{
    while ((ulCC3000DHCP == 0) || (ulCC3000Connected == 0))
    {
        __delay_cycles(1000);
    }
    long theSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    Socket=&theSocket;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top