int main(int argc, char *argv[]) { int confd; struct sockaddr_in saddr; char sbuf[1024] = "12345", cbuf[1024]; pid_t pid; int i; for (i = 0; i < 200; i++) { pid = fork (); if (pid == 0) { confd = func_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); saddr.sin_family = AF_INET; saddr.sin_port = htons(8000); inet_pton(AF_INET, "127.0.0.1", &saddr.sin_addr); func_connect(confd, (struct sockaddr *)&saddr, sizeof(saddr)); #if 0 bzero(sbuf, sizeof(sbuf)); // func_gets(sbuf); //while(func_gets(sbuf)) while(scanf("%s", sbuf)) { fprintf(stdout, "sbuf:%s\n", sbuf); func_send(confd, sbuf, sizeof(sbuf) > strlen(sbuf) ? strlen(sbuf) : sizeof(sbuf), 0); bzero(cbuf, sizeof(cbuf)); func_recv(confd, cbuf, sizeof(cbuf), 0); fprintf(stdout, "cbuf:%s\n", cbuf); } #endif func_close(confd); break; } else if (pid < 0) { fprintf(stdout, "fork error:%s\n", strerror(errno)); fprintf(stdout, "pid:%d\n", pid); } } exit(0); return 0; }
int func_timeout_reconnect(char *serverip,char *serverport,char *clientip,char *clientport){ int connectTime = 1000; int result=-1; while(result<0 && connectTime>0) { --connectTime; // create socket clientfd = socket(AF_INET,SOCK_STREAM,0); if(clientfd<0) { fprintf(fp,"socket() failed\n"); close(clientfd); continue; } // bind if(func_bind(clientfd,clientip,clientport)<0) { fprintf(fp,"bind() failed\n"); close(clientfd); continue; } result = func_connect(clientfd,serverip,serverport); if(result<0) { fprintf(fp,"connect() failed\n"); close(clientfd); } } if(connectTime<=0&&result==-1) { fprintf(fp,"final!!!connect() failed\n"); fprintf(fp,"connet error ,and game over"); fclose(fp); return -1; }else { fprintf(fp,"final!!!connect() successed\n"); return 0; } }
int main(int argc, char *argv[]) { void (*OldSig)(int); OldSig=signal(SIGINT,SIG_IGN); printf("nn************************************************************rn"); printf("* zFTP *rn"); printf("************************************************************rn"); printf(" Copyright (c) 2005rn"); printf(" All rights reserved.rn"); printf(" By Ji Surn"); if(argc > 0) { printf("nPlease use 'connect <system name> <user>' command to connect to a FTPserverrn"); printf("For anonymous user, please leave <user> blank.rn"); } //Main loop starts; //Checks on keyboard i/o for interaction and socket communication. int exit=0; char command[1024]; printf("nzftp>"); while(!exit) { if( ReadCommand ) { printf("nzftp>"); fflush(stdout); } if( !CheckFds(command) ) continue; switch(check_cmd(command) ) { case READ: func_read(command); break; case WRITE: func_write(command); break; case BINARY: func_binary_mode(); break; case ASCII: func_ascii_mode(); break; case CLOSE: func_close(); break; case CONNECT: func_connect(command); break; case CD: func_cdir(command); break; case DELETE: func_delete(command); break; case PWD: func_pwd(command); break; case LS: func_list(command); break; case HELP: func_help(command); break; case SHELL: func_Shell_cmd(command); break; case EXIT: exit = 1; if( flag_connected ) func_close(); break; default: if(command[0] == 0 ) ; else printf("Invalid command: %sn",command); break; } } (void)signal(SIGINT,OldSig); return 0; }