void trans_server(){ char a; //client get or send or quit recv(sockad,&a,1,0); for(;a!='Q'&&a!='q';){ if(a=='S'||a=='s'){ trans_s_get(); } else if(a=='G'||a=='g'){ trans_s_send(); } recv(sockad,&a,1,0); } } void trans_s_get(){ printf("trans_get is running\n"); FILE *f; char *name; char *s; int i; int num_s; char a; name=(char *)malloc(sizeof(char)*128); s=(char *)malloc(sizeof(char)*1024); int num_name; memset(name,0,128*sizeof(char)); memset(s,0,1024*sizeof(char)); num_name=recv(sockad,name,128,0); printf("get name : %s\n",name); f=fopen(name,"w+"); // fclose(f); // f=fopen(name,"r+"); printf("opening text\n"); for(;a!='Q'&&a!='q';){ num_s=recv(sockad,s,1024,0); printf("get this chars:%s\n",s); fprintf(f,"%s",s); memset(s,0,1024*sizeof(char)); if(num_s!=1024){ break; } } printf("write done\n"); free(name); free(s); fclose(f); } void trans_s_send(){ char *name; name=(char *)malloc(sizeof(char)*128); int num_name; memset(name,0,128*sizeof(char)); num_name=recv(sockad,name,128,0); free(name); }