int main(void) { structsockaddr_insin; structsockaddr_in pin; int listen_fd; int conn_fd; int sock_fd; int nready; int maxi; intmax; int client[FD_SETSIZE]; int address_size =sizeof(pin); char buf[MAXLINE]; char str[INET_ADDRSTRLEN]; int i; int len; int n; int ret;
if(-1 == ret){ if(errno== EINTR){ goto readagain; }else{ perror("call to read"); exit(1); } }elseif(0 == ret){ printf("the other side has been closed.\n"); break; }
printf("you ip is %s at port %d:%s\n", inet_ntop(AF_INET,&pin.sin_addr,str,sizeof(str)), ntohs(pin.sin_port),buf);
len =strlen(buf); for(i = 0; i < len; i++) { buf[i]=toupper(buf[i]); }
writeagain: ret =write(conn_fd, buf, len+1); printf("I write %d Byte!\n",ret);
if(-1 == ret){ if(errno== EINTR){ goto writeagain; }else{ perror("call to write!"); break; } } }// end while
if (-1 == ret){
if (errno == EINTR){
goto readagain;
}else{
perror("call to read");
exit(1);
}
} else if (0 == ret){
printf("the other side has been closed.\n");
break;
}