- 论坛徽章:
- 0
|
select函数的问题
This is the Echo Server :
while(1){
int result = select(FD_SETSIZE,&fds_tmp,NULL,NULL,NULL);
if(result < 1){
perror("Server:server error" ;
exit(1);
}
int fd;
int nread;
for(fd=0;fd<FD_SETSIZE;fd++){
if(FD_ISSET(fd,&fds_tmp)){
if(fd == s_socket){ //server socket
c_socket = accept(s_socket,(struct sockaddr*)&c_addr,&client_len);
FD_SET(c_socket,&fds_tmp);
fprintf(stdout,"server:add client to fd set:%d\n",c_socket);
}else{
ioctl(fd,FIONREAD,&nread);
if(nread == 0){
fprintf(stdout,"server:no data has read\n" ;
}else{
read(fd,buff,BUFFERSIZE);
fprintf(stdout,"server: have read data on client %d\n",fd);
write(fd,buff,BUFFERSIZE);
}
}
}
} |
|