size = sl_Recv(iNewSockID, revBuff, 1460, 0);
非阻塞模式怎么一直在这等待?
例程里面的程序
iStatus = sl_SetSockOpt(iSockID, SL_SOL_SOCKET, SL_SO_NONBLOCKING,
&lNonBlocking, sizeof(lNonBlocking));
user4066886:
试了下,貌似要把iSockID换成iNewSockID。
那么问题来了,为什么要用iNewSockID?
while (iNewSockID < 0) {// accepts a connection form a TCP client, if there is any// otherwise returns SL_EAGAINiNewSockID = sl_Accept(iSockID, (struct SlSockAddr_t *) &sAddr,(SlSocklen_t*) &iAddrSize);例程里面SL_EAGAIN又是怎么回事?晕啊
Yonghua Pan:
回复 user4066886:
你做为TCP服务器的话,你自己需要创建一个套接字,你接收到一个连接后就又创建一个新的套接字。
SL_EAGAIN代表这次没有客户端来连接,所以需要你再去调用来等待客户端的连接。