diff --git a/client/c b/client/c new file mode 100755 index 0000000..f379af8 Binary files /dev/null and b/client/c differ diff --git a/client/def.h b/client/def.h index e677545..6c6b331 100644 --- a/client/def.h +++ b/client/def.h @@ -11,4 +11,6 @@ void init_con(); void runtime_call(); void sync_client(); int sync_get(char *); - +void trans_client(); +void trans_c_send(); +void trans_c_get(); diff --git a/client/func/trans_client.c b/client/func/trans_client.c index 5c37993..d425954 100644 --- a/client/func/trans_client.c +++ b/client/func/trans_client.c @@ -10,10 +10,10 @@ void trans_client(){ for(;a!='Q'&&a!='q';){ if(a=='S'||a=='s'){ - trans_c_send(name); + trans_c_send(); } else if(a=='G'||a=='g'){ - trans_c_get(name); + trans_c_get(); } printf("send or get or quit?[S/G/Q]\n"); @@ -26,36 +26,53 @@ void trans_client(){ } -void trans_c_send(char *name){ +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)); - int num_name; 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); - FILE *f; - int num_text=0; - char a; 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){ +void trans_c_get(){ char *name; char *s; name=(char *)malloc(sizeof(char)*128); diff --git a/client/inclu.h b/client/inclu.h index 935467a..9a7390b 100644 --- a/client/inclu.h +++ b/client/inclu.h @@ -14,3 +14,4 @@ #include "func/init_con.c" #include "func/runtime_call.c" #include "func/sync_client.c" +#include "func/trans_client.c" diff --git a/client/text b/client/text new file mode 100644 index 0000000..4617c9a --- /dev/null +++ b/client/text @@ -0,0 +1,3 @@ +123456snfdnfsdf +sdfndnkjsdfsdf +sdfsdjfnsdf diff --git a/server/def.h b/server/def.h index 7cda601..f526bb0 100644 --- a/server/def.h +++ b/server/def.h @@ -8,3 +8,6 @@ char s[3]; void init_con(); void runtime_call(); void sync_server(); +void trans_server(); +void trans_s_get(); +void trans_s_send(); diff --git a/server/func/trans_server.c b/server/func/trans_server.c index dcf6c90..5e0b190 100644 --- a/server/func/trans_server.c +++ b/server/func/trans_server.c @@ -16,12 +16,32 @@ void trans_server(){ } void trans_s_get(){ + 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); + + + f=fopen(name,"w+"); + + for(;a!='Q'&&a!='q';){ + num_s=recv(sockad,s,1024,0); + for(i=0;i