net-server/server/func/trans_server.c
2023-12-26 20:45:32 +08:00

65 lines
1.1 KiB
C

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);
}