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); } printf("exit trans_server\n"); } void trans_s_get(){ printf("trans_get is running\n"); FILE *f; char *name; char *s; int i; int num_s; char a; a='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+"); printf("opening text\n"); for(;a!='Q';){ num_s=recv(sockad,s,1024,0); recv(sockad,&a,1,0); printf("get this chars:%s\n",s); printf("get a: %c\n",a); fprintf(f,"%s",s); memset(s,0,1024*sizeof(char)); } printf("write done\n"); free(name); free(s); fclose(f); printf("exit trans\n"); } 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); }