Linux socket 超时接收设置

int socket_rxBuf(u8* outdata,u16* length)
{
    int recvbytes =0;
    int i;


    struct timeval timeout={10,0};//10s
    int ret=setsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,(const char*)&timeout,sizeof(timeout));
    recvbytes=recv(sockfd, outdata, (1024*2+10), 0);
 

    if(recvbytes <= 0)
    {
  
        if(recvbytes == -1 &&errno==EAGAIN)
            return 0;//超时
        return -2;
        
    }

    (*length) = recvbytes;

    return recvbytes;
}

你可能感兴趣的:(嵌入式驱动)