This commit is contained in:
macbook-pro 2023-12-20 14:53:44 +08:00
parent 25e3bd4a51
commit 2c534781f6
14 changed files with 106 additions and 23 deletions

View File

@ -5,6 +5,11 @@ struct sockaddr_in seraddr;
struct sockaddr_in cliaddr;
int len;
char s_call=0;
int runtime_break=0;
void init_con();
void runtime_call();
void sync_client();
int sync_get(char *);

View File

@ -5,5 +5,4 @@ void init_con(){
seraddr.sin_port = htons(8000);
seraddr.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(sockad,(struct sockaddr *)&seraddr, sizeof(struct sockaddr));
}

View File

@ -1,8 +1,9 @@
void runtime_call(){
char a;
int b;
printf("input connection mode\n");
a=getchar();
for(;;){
scanf("%c",&a);
for(;a!='q';){
if(a=='1'){
//sync
sync_client();
@ -13,6 +14,10 @@ void runtime_call(){
else if(a=='3'){
//http
}
a=getchar();
if(runtime_break){
break;
}
printf("input connection mode again\n");
scanf("%c",&a);
}
}

View File

@ -1,6 +1,39 @@
void sync_client(){
char b;
int num=0;
char a='1';
send(sockad,&a,1,0);
char *s;
s=(char *)malloc(1024*sizeof(char));
scanf("%c",&a);
num=sync_get(s);
for(;;){
send(sockad,s,num,0);
printf("keep or not?[Y/N]\n");
scanf("%c",&a);
scanf("%c",&b);
send(sockad,&a,1,0);
if(a=='N'|a=='n'){
runtime_break=1;
break;
}
num=sync_get(s);
}
free(s);
}
int sync_get(char * s){
int i;
char a;
memset(s,0,1024*sizeof(char));
printf("input chars:\n");
scanf("%c",&a);
for(i=0;a!='\0'&&a!='\n';i++){
s[i]=a;
scanf("%c",&a);
}
s[i]='\0';
printf("input done\n");
return i;
}

View File

@ -9,3 +9,5 @@
#include "def.h"
#include "func/init_con.c"
#include "func/runtime_call.c"
#include "func/sync_client.c"

View File

@ -4,10 +4,11 @@ int main(int argc, char *argv[])
{
init_con();
len=recv(sockad,s,1024,0);
printf("%s\n",s);
runtime_call();
// len=recv(sockad,s,1024,0);
// printf("%s\n",s);
close(sockad);
return EXIT_SUCCESS;
return 0;
}

View File

@ -3,6 +3,9 @@ int sockad;
struct sockaddr_in seraddr;
struct sockaddr_in cliaddr;
int len_s;
int runtime_break=0;
int sin_size=sizeof(struct sockaddr_in);
char s[3];
void init_con();
void runtime_call();
void sync_server();

View File

@ -9,5 +9,4 @@ void init_con(){
printf("start listen\n");
sockad=accept(sockfd, (struct sockaddr *)&cliaddr, &sin_size);
printf("connection started\n");
}

View File

@ -1,15 +1,22 @@
void runtime_call(){
char a;
printf("runtime_call is running\n");
recv(sockad,&a,1,0);
if(a=='1'){
//sync
sync_server();
}
else if(a=='2'){
//trans
}
else if(a=='3'){
//http
for(;a!='q';){
if(a=='1'){
//sync
sync_server();
}
else if(a=='2'){
//trans
}
else if(a=='3'){
//http
}
if(runtime_break){
break;
}
recv(sockad,&a,1,0);
printf("runtime_call is running\n");
}
}

View File

@ -1,4 +1,19 @@
void sync_server(){
int num;
char a;
char *s;
s=(char *)malloc(1024*sizeof(char));
memset(s,0,1024*sizeof(char));
for(;;){
num=recv(sockad,s,1024,0);
s[num]='\0';
printf("get chars:%s\n",s);
recv(sockad,&a,1,0);
if(a=='N'|a=='n'){
runtime_break=1;
break;
}
memset(s,0,1024*sizeof(char));
}
free(s);
}

View File

@ -10,3 +10,5 @@
#include "func/init_con.c"
#include "func/runtime_call.c"
#include "func/sync_server.c"

View File

@ -2,12 +2,13 @@
int main(int argc,char **argv)
{
len_s=3;
s[0]='3';
s[1]='4';
s[2]='1';
// len_s=3;
// s[0]='3';
// s[1]='4';
// s[2]='1';
init_con();
send(sockad,s, len_s, 0);
runtime_call();
// send(sockad,s, len_s, 0);
close(sockfd);
close(sockad);
return 0;

BIN
test/c Executable file

Binary file not shown.

11
test/check.c Normal file
View File

@ -0,0 +1,11 @@
#include <stdio.h>
int main(){
char a;
for(;;){
a=getchar();
printf("%d\n",a);
}
return 0;
}