- 论坛徽章:
- 0
|
回复 1楼 zlh2407 的帖子
a程序:
if ( (s6=accept(s7, (struct sockaddr *)&cad, &alen)) < 0) {
printf(" accept failed\n,%s\n",strerror(errno));
close(s6);
close(s7);
exit(1);
}
printf("accept from outer \n");
FD_ZERO(&connect_sock_set);
FD_SET(s7,&connect_sock_set);
connect_sock_tv.tv_sec = 30;
connect_sock_tv.tv_usec = 0;
i=select(s7+1,&connect_sock_set, &wfd_set, &efd_set, &connect_sock_tv);
if(i==0){
printf("s6 timeoff! \n");
close(s7);
return (-1);
}
printf("select is made !\n");
if(i<0){
printf("select error !\n");
exit(-1);
}
if(FD_ISSET(STDIN,&connect_sock_set)){
fgets(send_str,MAXDATASIZE,STDIN);
send_str[strlen(send_str)-1]='\0';
send(s6,send_str,strlen(send_str),0);
}
if(FD_ISSET(s6,&connect_sock_set)){
j=recv(s6, buf, BUF_SIZE, 0);
if( j==0){
printf("recv null from outer \n,%s\n",strerror(errno));
close(s6);
close(s7);
return -1;
}
}
if(FD_ISSET(s6,&connect_sock_set)){
close(s6);
exit(0);
}
close(s6);
printf("close s6 \n");
return 0; |
|