66 lines
1.1 KiB
C
66 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);
|
|
}
|
|
}
|
|
|
|
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);
|
|
|
|
}
|