int main(int argc, char * argv[]) { signal(13, SIG_IGN); signal(17, sig_handle); if(argc != 3) { printf("USAGE: EXE IP PORT"); exit(-1); } int fd_server, fd_client ; struct sockaddr_in client_addr ; int addrlen = sizeof(client_addr); fd_server = listenfd_init(argv[1], argv[2]); while((fd_client = accept(fd_server, (struct sockaddr*)&client_addr, &addrlen)) > 0) { if(fd_client == -1) { if(errno == EINTR) { continue ; } } printf("a client connet :%s :%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); if(fork() == 0) { close(fd_server); // send_dir(fd_client); printf("begin handle...download...\n"); handle_request(fd_client); exit(0); } } }
int main(int argc , char* argv[])//exe ip port { signal(13,SIG_IGN); if(argc != 3) { printf("usge : exe ip port"); exit(-1); } int fd_server,fd_client; struct sockaddr_in client_addr ; int addrlen = sizeof(client_addr); fd_server = listenfd_init(argv[1], argv[2]); while(fd_client = accept(fd_server,(struct sockaddr*)&client_addr,&addrlen)) { printf("a client connect :%s:%d\n",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port)); handle_request(fd_client); } }
int main(int argc , char* argv[])//exe ip port { signal(13,SIG_IGN); signal(17,sig_handle); if(argc != 3) { printf("usge : exe ip port"); exit(-1); } int fd_server ,fd_client; struct sockaddr_in client_addr ; int addrlen = sizeof(client_addr); fd_server = listenfd_init(argv[1],argv[2]); while( (fd_client = accept(fd_server,(struct sockaddr*)&client_addr,&addrlen) ) > 0 ) { if(fd_client == -1) { if(errno == EINTR) { continue ; } } printf("a client connect :%s:%d\n",inet_ntoa(client_addr.sin_addr),ntohs(client_addr.sin_port)); if(fork() == 0) { close(fd_server); char comd[1024]; //circle recv msg while(1) { fflush(stdout); char sign[32]; bzero(comd, 1024); recv_command(fd_client,comd); printf("comd:%s\n", comd); if(strncmp(comd, "ls", 2) == 0) { send_dir(fd_client); } else if(strncmp(comd, "download", 8) == 0) { ul_file(fd_client); } else if(strncmp(comd, "cd", 2) == 0) { send_path(fd_client, comd); } else if(strncmp(comd, "rm", 2) == 0) { system(comd); } else if(strncmp(comd, "upload", 6) == 0) { dl_file(fd_client); } else if(strncmp(comd, "cl", 2) == 0) { system("clear"); } } exit(0); } } }