This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

cc3200 TCP 非阻塞模式



size = sl_Recv(iNewSockID, revBuff, 1460, 0);

非阻塞模式怎么一直在这等待?

例程里面的程序

iStatus = sl_SetSockOpt(iSockID, SL_SOL_SOCKET, SL_SO_NONBLOCKING,
&lNonBlocking, sizeof(lNonBlocking));

  • 试了下,貌似要把iSockID换成iNewSockID。

    那么问题来了,为什么要用iNewSockID?

    while (iNewSockID < 0) {
    		// accepts a connection form a TCP client, if there is any
    		// otherwise returns SL_EAGAIN
    		iNewSockID = sl_Accept(iSockID, (struct SlSockAddr_t *) &sAddr,
    				(SlSocklen_t*) &iAddrSize);

    例程里面SL_EAGAIN又是怎么回事?晕啊


  • 你做为TCP服务器的话,你自己需要创建一个套接字,你接收到一个连接后就又创建一个新的套接字。

    SL_EAGAIN代表这次没有客户端来连接,所以需要你再去调用来等待客户端的连接。