socket通信的遇到的问题1

使用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的变化。

今天忘记加上这两句,调试了好久才发现这个问题,谨记。


你可能感兴趣的:(gcc)