net-server/client/func/trans_client.c
2023-12-25 09:41:27 +08:00

106 lines
1.6 KiB
C

void trans_client(){
char a='2';
send(sockad,&a,1,0);
char b;
printf("send or get or quit?[S/G/Q]\n");
scanf("%c%c",&a,&b);
send(sockad,&a,1,0);
for(;a!='Q'&&a!='q';){
if(a=='S'||a=='s'){
trans_c_send();
}
else if(a=='G'||a=='g'){
trans_c_get();
}
printf("send or get or quit?[S/G/Q]\n");
scanf("%c%c",&a,&b);
send(sockad,&a,1,0);
}
}
void trans_c_send(){
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);
for(;a!=EOF;){
*(s+num_text)=a;
num_text++;
a=fgetc(f);
if(num_text==1024){
num_text=0;
b='a';
send(sockad,s,1024,0);
send(sockad,&b,1,0);
memset(s,0,1024*sizeof(char));
}
else if(a=EOF){
b='Q';
send(sockad,s,num_text,0);
send(sockad,&b,1,0);
}
}
fclose(f);
a='Q';
send(sockad,&a,1,0);
free(name);
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;
}
}
*/