select的疑问,求助~
写了个客户端的程序,本意是select标准输入和socket,如果输入就send,socket有数据就recv,不过程序总是select到输入,没有去读socket的数据,不知道是为什么。
附上代码:
FD_ZERO(&fds);
FD_SET(0, &fds);
FD_SET(clientfd, &fds);
printf("clientfd:[%d]\n", clientfd);
while(i)
{
ret = select(FD_SETSIZE, &fds, NULL, NULL, NULL);
if(ret < 1)
{
perror("select error");
return -1;
}
printf("select ret:[%d]\n", ret);
if(FD_ISSET(clientfd, &fds))
{
RecvData(clientfd, recv_buf);
}
if(FD_ISSET(0, &fds))
{
gets(send_buf);
fflush(0);
if(strlen(send_buf) > 0)
{
SendData(clientfd, send_buf);
}
}
}