使用select对fd可读写,格式
while(ctrl){
FD_ZERO(&readSocketSet);
FD_SET(readSocketFd,&readSocketSet);
ret = select(maxFd,&readSocketSet,NULLNULL)
switch(ret){
case 0: break;
case -1: exit(-1);break;
default:
//recv data
break;
}
}
若把
FD_ZERO(&readSocketSet);
FD_SET(readSocketFd,&readSocketSet);
屏蔽,
1、linux和linux能接收到数据,只能接收几次。
2、linux无法接收来自windows的数据,select感应不到fd的变化。
今天忘记加上这两句,调试了好久才发现这个问题,谨记。