net-server/client/func/trans_client.c
2023-12-25 11:34:10 +08:00

118 lines
1.9 KiB
C

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;
}
}
*/