void trans_client(){ char a; a='2'; send(sockad,&a,1,0); char b; char *name; name=(char *)malloc(128*sizeof(char)); memset(name,0,128*sizeof(char)); printf("send or get or quit?[S/G/Q]\n"); scanf("%c",&a); // scanf("%c",&b); printf("a is %c\n",a); send(sockad,&a,1,0); for(;a!='Q'&&a!='q';){ if(a=='S'||a=='s'){ printf("input the name of file:"); scanf("%s",name); printf("name is %s\n",name); trans_c_send(name); } else if(a=='G'||a=='g'){ trans_c_get(); } printf("send or get or quit?[S/G/Q]\n"); scanf("%c",&a); // scanf("%c",&b); send(sockad,&a,1,0); printf("a is %c\n",a); } } void trans_c_send(char *name){ printf("trans_c_send is running\n"); // char *name; char *s; int num_name; FILE *f; int num_text=0; char a; char b; // name=(char *)malloc(sizeof(char)*128); s=(char *)malloc(1024*sizeof(char)); // memset(name,0,128*sizeof(char)); memset(s,0,1024*sizeof(char)); // printf("input the name of file:"); // scanf("%s",name); num_name=strlen(name); send(sockad,name,num_name,0); f=fopen(name,"r+"); a=fgetc(f); printf("opening file\n"); for(;a!=EOF;){ *(s+num_text)=a; num_text++; a=fgetc(f); if(num_text==1024){ num_text=0; b='a'; printf("sending %s\n",s); send(sockad,s,1024,0); send(sockad,&b,1,0); memset(s,0,1024*sizeof(char)); } else if(a==EOF){ b='Q'; printf("sending %s\n",s); send(sockad,s,num_text,0); send(sockad,&b,1,0); } } fclose(f); free(s); } void trans_c_get(){ char *name; char *s; name=(char *)malloc(sizeof(char)*128); s=(char *)malloc(1024*sizeof(char)); int num_name; memset(name,0,128*sizeof(char)); printf("input the name of file:"); scanf("%s",name); num_name=strlen(name); send(sockad,name,num_name,0); free(name); } /* void itc(int num_name,char *num_name_char){ int a; int i; int m; for(i=0;i<3;i++){ m=2-i; m=(int)pow(10,m); a=num_name/m; num_name=num_name-a*m; num_name_char[i]=a+48; } } */