日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

基于TCP的在线英文词典(使用了sqlite3数据库)

發(fā)布時間:2023/12/20 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于TCP的在线英文词典(使用了sqlite3数据库) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一,框架搭建

(建議使用代碼比較器軟件對比著來看)

客戶端:

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4typedef struct {int type;char name[N];char data[256]; }MSG;MSG msg; int n;void do_register(int sockfd,MSG *msg) {printf("register ok\n"); }int do_login(int sockfd,MSG *msg) {printf("login ok\n");return 1; }int do_query(int sockfd,MSG *msg) {printf("login ok\n");return 1; }int do_history(int sockfd,MSG *msg) {printf("login ok\n");return 0; }int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("connect err");return -1;}//while(1){printf("**************************************\n");printf("****1,register*****2,login*****3,quit****\n");printf("******************************************\n");printf("please choose\n");scanf("%d",&n);getchar();switch (n){case 1:do_register(sockfd,&msg);break;case 2:if(do_login(sockfd,&msg)==1){goto next;}break;case 3:close(sockfd);exit(0);break;default:printf("num err\n");}}next:while (1){/* code */printf("****************************************\n");printf("1,query_word******2,history_record****3,quit\n");printf("****************************************\n");printf("please choose:\n");scanf("%d",&n);getchar();switch (n){case 1:do_query(sockfd,&msg);break;default:break;}}return 0; }

服務(wù)器:

//gcc 電子詞典服務(wù)器.c -lsqlite3 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <sqlite3.h> #include <signal.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4#define DATABASE "my_db"typedef struct {int type;char name[N];char data[256]; }MSG; // // // MSG msg; int n; sqlite3 *db; pid_t pid; int acceptfd; // // // int do_client(int acceptfd,sqlite3 *db); // // // void do_register(int sockfd,MSG *msg,sqlite3 *db) {printf("register ok\n"); } // // // int do_login(int sockfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 1; } // // // int do_query(int sockfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 1; } // // // int do_history(int sockfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 0; } // // // int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}//if(sqlite3_open(DATABASE,&db) != SQLITE_OK){printf("%s\n",sqlite3_errmsg(db));return -1;}else{printf("open database success\n");}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(bind(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("bind err");return -1;}//if(listen(sockfd,5)<0){printf("listen err\n");return -1;}//////signal(SIGCHLD,SIG_IGN);//處理僵尸進程////while (1){/* code */if((acceptfd = accept(sockfd,NULL,NULL))< 0){perror("acceptfd err");return -1;}//////if((pid == fork())<0){perror("fork err");return -1;}else if(pid == 0){close(sockfd);do_client(acceptfd,db);}else{close(acceptfd);}//////}//////return 0; } // // // int do_client(int acceptfd,sqlite3 *db) {while (recv(acceptfd,&msg,sizeof(msg),0)>0){/* code */switch (msg.type){case R:do_register(acceptfd,&msg,db);break;case L:do_login(acceptfd,&msg,db);break;case Q:do_query(acceptfd,&msg,db);break;case H:do_history(acceptfd,&msg,db);break;default:printf("msg.type err\n");}}//////close(acceptfd);exit(0);return 0; }

二,添加“注冊”功能

客戶端:

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4typedef struct {int type;char name[N];char data[256]; }MSG;MSG msg; int n;void do_register(int sockfd,MSG *msg) {msg->type = R;printf("name:\n");scanf("%s",msg->name);getchar();printf("passwd:\n");scanf("%s",msg->data);if((send(sockfd,msg,sizeof(MSG),0))<0){printf("send err\n");//return -1;exit(1);}//////if((recv(sockfd,msg,sizeof(MSG),0))<0){printf("recv err\n");//return -1;exit(1);}//////printf("%s\n",msg->data);}int do_login(int sockfd,MSG *msg) {printf("login ok\n");return 1; }int do_query(int sockfd,MSG *msg) {printf("login ok\n");return 1; }int do_history(int sockfd,MSG *msg) {printf("login ok\n");return 0; }int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("connect err");return -1;}//while(1){printf("**************************************\n");printf("****1,register*****2,login*****3,quit****\n");printf("******************************************\n");printf("please choose\n");scanf("%d",&n);getchar();switch (n){case 1:do_register(sockfd,&msg);break;case 2:if(do_login(sockfd,&msg)==1){goto next;}break;case 3:close(sockfd);exit(0);break;default:printf("num err\n");}}next:while (1){/* code */printf("****************************************\n");printf("1,query_word******2,history_record****3,quit\n");printf("****************************************\n");printf("please choose:\n");scanf("%d",&n);getchar();switch (n){case 1:do_query(sockfd,&msg);break;default:break;}}return 0; }

服務(wù)器:

//gcc 電子詞典服務(wù)器.c -lsqlite3 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <sqlite3.h> #include <signal.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4#define DATABASE "my_db"typedef struct {int type;char name[N];char data[256]; }MSG; // // // MSG msg; int n; sqlite3 *db; pid_t pid; int acceptfd; // // // int do_client(int acceptfd,sqlite3 *db); // // // void do_register(int acceptfd,MSG *msg,sqlite3 *db) {//char *errmsg;char sql[111];sprintf(sql,"insert into user values('%s',%s);",msg->name,msg->data);printf("%s\n",sql);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("%s\n",errmsg);strcpy(msg->data,"user name is already existing.");}else{/* code */printf("client register ok!\n");strcpy(msg->data,"ok");}//////if(send(acceptfd,msg,sizeof(MSG),0) < 0){perror("send err");return -1;} } // // // int do_login(int acceptfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 1; } // // // int do_query(int acceptfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 1; } // // // int do_history(int acceptfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 0; } // // // int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}//if(sqlite3_open(DATABASE,&db) != SQLITE_OK){printf("%s\n",sqlite3_errmsg(db));return -1;}else{printf("open database success\n");}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(bind(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("bind err");return -1;}//if(listen(sockfd,5)<0){printf("listen err\n");return -1;}//////signal(SIGCHLD,SIG_IGN);//處理僵尸進程////while (1){/* code */if((acceptfd = accept(sockfd,NULL,NULL))< 0){perror("acceptfd err");return -1;}//////if((pid == fork())<0){perror("fork err");return -1;}else if(pid == 0){close(sockfd);do_client(acceptfd,db);}else{close(acceptfd);}//////}//////return 0; } // // // int do_client(int acceptfd,sqlite3 *db) {while (recv(acceptfd,&msg,sizeof(msg),0)>0){/* code */printf("msg->type = %d\n",msg.type);switch (msg.type){case R:do_register(acceptfd,&msg,db);break;case L:do_login(acceptfd,&msg,db);break;case Q:do_query(acceptfd,&msg,db);break;case H:do_history(acceptfd,&msg,db);break;default:printf("msg.type err\n");}}//////close(acceptfd);exit(0);return 0; }

三,添加”查詢“功能

客戶端:

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4typedef struct {int type;char name[N];char data[256]; }MSG;MSG msg; int n;void do_register(int sockfd,MSG *msg) {msg->type = R;printf("name:\n");scanf("%s",msg->name);getchar();printf("passwd:\n");scanf("%s",msg->data);if((send(sockfd,msg,sizeof(MSG),0))<0){printf("send err\n");//return -1;exit(1);}//////if((recv(sockfd,msg,sizeof(MSG),0))<0){printf("recv err\n");//return -1;exit(1);}//////printf("%s\n",msg->data);}int do_login(int sockfd,MSG *msg) {printf("login ok\n");return 1; }int do_query(int sockfd,MSG *msg) {//////msg->type = Q;puts("-------------------------");//////while (1){/* code */printf("please input word\n");scanf("%s",msg->data);if(strncmp(msg->data,"#",1) == 0)break;if(send(sockfd,msg,sizeof(MSG),0)<0){printf("send err\n");return -1;}if(recv(sockfd,msg,sizeof(MSG),0)<0){printf("recv err\n");return -1;} printf("%s\n",msg->data);}}int do_history(int sockfd,MSG *msg) {printf("login ok\n");return 0; }int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("connect err");return -1;}//while(1){printf("**************************************\n");printf("****1,register*****2,login*****3,quit****\n");printf("******************************************\n");printf("please choose\n");scanf("%d",&n);getchar();switch (n){case 1:do_register(sockfd,&msg);break;case 2:if(do_login(sockfd,&msg)==1){goto next;}break;case 3:close(sockfd);exit(0);break;default:printf("num err\n");}}next:while (1){/* code */printf("****************************************\n");printf("1,query_word******2,history_record****3,quit\n");printf("****************************************\n");printf("please choose:\n");scanf("%d",&n);getchar();switch (n){case 1:do_query(sockfd,&msg);break;default:break;}}return 0; }

服務(wù)器:

//gcc 電子詞典服務(wù)器.c -lsqlite3 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <sqlite3.h> #include <signal.h> #include <time.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4#define DATABASE "my_db"typedef struct {int type;char name[N];char data[256]; }MSG; // // // MSG msg; int n; sqlite3 *db; pid_t pid; int acceptfd; // // // int do_client(int acceptfd,sqlite3 *db); // // // void do_register(int acceptfd,MSG *msg,sqlite3 *db) {//char *errmsg;char sql[111];sprintf(sql,"insert into user values('%s',%s);",msg->name,msg->data);printf("%s\n",sql);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("%s\n",errmsg);strcpy(msg->data,"user name is already existing.");}else{/* code */printf("client register ok!\n");strcpy(msg->data,"ok");}//////if(send(acceptfd,msg,sizeof(MSG),0) < 0){perror("send err");//return -1;} } // // // int do_login(int acceptfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 1; } // // int do_searchword(int acceptfd,MSG *msg,char word[]) {////int len = 0; //要查詢的單詞的長度////char temp[512] ={}; //用來讀文件,查詢單詞int result; //查詢單詞的比較結(jié)果////char *p; //查詢單詞所用////FILE *fp; //使用標準IO打開單詞表文件if((fp = fopen("./dictionary.txt","r")) == NULL){perror("fopen ./dictionary.txt err");strcpy(msg->data,"fopen ./dictionary.txt err");send(acceptfd,msg,sizeof(MSG),0);return -1;}//////計算單詞的長度len = strlen(word);printf("%s , len= %d\n",word,len);////while (fgets(temp,512,fp) != NULL){/* code */result = strncmp(temp,word,len);if(result > 0 ) //沒找到單詞就繼續(xù)找{continue;}if(result <0 || temp[len] != ' ') //找到了單詞{break;}////p = temp +len; //跳過空格,移動指針到單詞的解釋while (*p == ' '){/* code */p++;}////strcpy(msg->data,p);////fclose(fp);return 1;}} // // int get_shijian(char *shijian) {////time_t t;struct tm *tp;time(&t);localtime(&t);sprintf(shijian,"%d-%d-%d-%d:%d:%d",tp->tm_year + 1900,tp->tm_mon+1,tp->tm_mday,tp->tm_hour,tp->tm_min ,tp->tm_sec);return 0 ;} // // int do_query(int acceptfd,MSG *msg,sqlite3 *db) {////char word[64];int found = 0;char shijian[128];char sql[128] = {};char *errmsg;////strcpy(word,msg->data);found = do_searchword(acceptfd,msg,word);////if(found == 1){////get_shijian(shijian);////sprintf(sql,"insert into record values('%s','%s','%s')",msg->name,shijian,word);printf("%s\n",sql);////if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("%s\n",errmsg);return -1;}}else{////strcpy(msg->data,"not found!");}send(acceptfd,msg,sizeof(MSG),0);return 0;} // // // int do_history(int acceptfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 0; } // // // int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}//if(sqlite3_open(DATABASE,&db) != SQLITE_OK){printf("%s\n",sqlite3_errmsg(db));return -1;}else{printf("open database success\n");}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(bind(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("bind err");return -1;}//if(listen(sockfd,5)<0){printf("listen err\n");return -1;}//////signal(SIGCHLD,SIG_IGN);//處理僵尸進程////while (1){/* code */if((acceptfd = accept(sockfd,NULL,NULL))< 0){perror("acceptfd err");return -1;}//////if((pid == fork())<0){perror("fork err");return -1;}else if(pid == 0){close(sockfd);do_client(acceptfd,db);}else{close(acceptfd);}//////}//////return 0; } // // // int do_client(int acceptfd,sqlite3 *db) {while (recv(acceptfd,&msg,sizeof(msg),0)>0){/* code */printf("msg->type = %d\n",msg.type);switch (msg.type){case R:do_register(acceptfd,&msg,db);break;case L:do_login(acceptfd,&msg,db);break;case Q:do_query(acceptfd,&msg,db);break;case H:do_history(acceptfd,&msg,db);break;default:printf("msg.type err\n");}}//////close(acceptfd);exit(0);return 0; }

四,添加”歷史記錄“功能

客戶端:

#include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4typedef struct {int type;char name[N];char data[256]; }MSG;MSG msg; int n;void do_register(int sockfd,MSG *msg) {msg->type = R;printf("name:\n");scanf("%s",msg->name);getchar();printf("passwd:\n");scanf("%s",msg->data);if((send(sockfd,msg,sizeof(MSG),0))<0){printf("send err\n");//return -1;exit(1);}//////if((recv(sockfd,msg,sizeof(MSG),0))<0){printf("recv err\n");//return -1;exit(1);}//////printf("%s\n",msg->data);}int do_login(int sockfd,MSG *msg) {printf("login ok\n");return 1; }int do_query(int sockfd,MSG *msg) {//////msg->type = Q;puts("-------------------------");//////while (1){/* code */printf("please input word\n");scanf("%s",msg->data);if(strncmp(msg->data,"#",1) == 0)break;if(send(sockfd,msg,sizeof(MSG),0)<0){printf("send err\n");return -1;}if(recv(sockfd,msg,sizeof(MSG),0)<0){printf("recv err\n");return -1;} printf("%s\n",msg->data);}}int do_history(int sockfd,MSG *msg) {////msg->type = H; send(sockfd,msg,sizeof(MSG),0);while(1){recv(sockfd,msg,sizeof(MSG),0);if(msg->data[0] == '\0'){break;}printf("%s\n",msg->data);}return 0; }int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(connect(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("connect err");return -1;}//while(1){printf("**************************************\n");printf("****1,register*****2,login*****3,quit****\n");printf("******************************************\n");printf("please choose\n");scanf("%d",&n);getchar();switch (n){case 1:do_register(sockfd,&msg);break;case 2:if(do_login(sockfd,&msg)==1){goto next;}break;case 3:close(sockfd);exit(0);break;default:printf("num err\n");}}next:while (1){/* code */printf("****************************************\n");printf("1,query_word******2,history_record****3,quit\n");printf("****************************************\n");printf("please choose:\n");scanf("%d",&n);getchar();switch (n){case 1:do_query(sockfd,&msg);break;default:break;}}return 0; }

服務(wù)器:

//gcc 電子詞典服務(wù)器.c -lsqlite3 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <sqlite3.h> #include <signal.h> #include <time.h>#define N 32#define R 1 #define L 2 #define Q 3 #define H 4#define DATABASE "my_db"typedef struct {int type;char name[N];char data[256]; }MSG; // // MSG msg; int n; sqlite3 *db; pid_t pid; int acceptfd; // // int history_callback(void *arg,int f_num,char** f_value,char **f_name); // int do_client(int acceptfd,sqlite3 *db); // int do_searchword(int acceptfd,MSG *msg,char word[]); // int get_shijian(char *shijian); // // void do_register(int acceptfd,MSG *msg,sqlite3 *db) {//char *errmsg;char sql[111];sprintf(sql,"insert into user values('%s',%s);",msg->name,msg->data);printf("%s\n",sql);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("%s\n",errmsg);strcpy(msg->data,"user name is already existing.");}else{/* code */printf("client register ok!\n");strcpy(msg->data,"ok");}//////if(send(acceptfd,msg,sizeof(MSG),0) < 0){perror("send err");//return -1;} } // // // int do_login(int acceptfd,MSG *msg,sqlite3 *db) {printf("login ok\n");return 1; } // // int do_searchword(int acceptfd,MSG *msg,char word[]) {////int len = 0; //要查詢的單詞的長度////char temp[512] ={}; //用來讀文件,查詢單詞int result; //查詢單詞的比較結(jié)果////char *p; //查詢單詞所用////FILE *fp; //使用標準IO打開單詞表文件if((fp = fopen("./dictionary.txt","r")) == NULL){perror("fopen ./dictionary.txt err");strcpy(msg->data,"fopen ./dictionary.txt err");send(acceptfd,msg,sizeof(MSG),0);return -1;}//////計算單詞的長度len = strlen(word);printf("%s , len= %d\n",word,len);////while (fgets(temp,512,fp) != NULL){/* code */result = strncmp(temp,word,len);if(result > 0 ) //沒找到單詞就繼續(xù)找{continue;}if(result <0 || temp[len] != ' ') //找到了單詞{break;}////p = temp +len; //跳過空格,移動指針到單詞的解釋while (*p == ' '){/* code */p++;}////strcpy(msg->data,p);////fclose(fp);return 1;}} // // int get_shijian(char *shijian) {////time_t t;struct tm *tp;time(&t);localtime(&t);sprintf(shijian,"%d-%d-%d-%d:%d:%d",tp->tm_year + 1900,tp->tm_mon+1,tp->tm_mday,tp->tm_hour,tp->tm_min ,tp->tm_sec);return 0 ;} // // int do_query(int acceptfd,MSG *msg,sqlite3 *db) {////char word[64];int found = 0;char shijian[128];char sql[128] = {};char *errmsg;////strcpy(word,msg->data);found = do_searchword(acceptfd,msg,word);////if(found == 1){////get_shijian(shijian);////sprintf(sql,"insert into record values('%s','%s','%s')",msg->name,shijian,word);printf("%s\n",sql);////if(sqlite3_exec(db,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("%s\n",errmsg);return -1;}}else{////strcpy(msg->data,"not found!");}send(acceptfd,msg,sizeof(MSG),0);return 0;} // // int history_callback(void *arg,int f_num,char** f_value,char **f_name) {////int acceptfd;MSG msg;////acceptfd = *((int *)arg);////sprintf(msg.data,"%s,%s",f_value[1],f_value[2]);send(acceptfd,&msg,sizeof(MSG),0);return 0; } // // int do_history(int acceptfd,MSG *msg,sqlite3 *db) {////char sql[128]={};char *errmsg;////sprintf(sql,"select * from record where name = '%s'",msg->name);////if(sqlite3_exec(db,sql,history_callback,(void *)&acceptfd,&errmsg) != SQLITE_OK){printf("%s\n",errmsg);}else{printf("ok\n");}////msg->data[0] = '\0';send(acceptfd,msg,sizeof(MSG),0);////return 0;} // // // int main(int argc, char const *argv[]) {/* code */if(argc != 3){printf("argc err\n");return -1;}//if(sqlite3_open(DATABASE,&db) != SQLITE_OK){printf("%s\n",sqlite3_errmsg(db));return -1;}else{printf("open database success\n");}int sockfd = socket(AF_INET,SOCK_STREAM,0);if(sockfd < 0){perror("sockfd err");return -1 ;}//struct sockaddr_in serveraddr;bzero(&serveraddr,sizeof(serveraddr));serveraddr.sin_family = AF_INET;serveraddr.sin_addr.s_addr = inet_addr(argv[1]);serveraddr.sin_port = htons(atoi(argv[2]));//if(bind(sockfd,(struct sockaddr *)&serveraddr,sizeof(serveraddr))<0){perror("bind err");return -1;}//if(listen(sockfd,5)<0){printf("listen err\n");return -1;}//////signal(SIGCHLD,SIG_IGN);//處理僵尸進程////while (1){/* code */if((acceptfd = accept(sockfd,NULL,NULL))< 0){perror("acceptfd err");return -1;}//////if((pid == fork())<0){perror("fork err");return -1;}else if(pid == 0){close(sockfd);do_client(acceptfd,db);}else{close(acceptfd);}//////}//////return 0; } // // // int do_client(int acceptfd,sqlite3 *db) {while (recv(acceptfd,&msg,sizeof(msg),0)>0){/* code */printf("msg->type = %d\n",msg.type);switch (msg.type){case R:do_register(acceptfd,&msg,db);break;case L:do_login(acceptfd,&msg,db);break;case Q:do_query(acceptfd,&msg,db);break;case H:do_history(acceptfd,&msg,db);break;default:printf("msg.type err\n");}}//////close(acceptfd);exit(0);return 0; }

總結(jié)

以上是生活随笔為你收集整理的基于TCP的在线英文词典(使用了sqlite3数据库)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

黄网站色成年免费观看 | 国产成人一区二区三区影院在线 | 福利片免费看 | 很污的网站 | 成年在线观看 | 在线看成人av | 激情久久小说 | 欧美色精品天天在线观看视频 | 激情开心色 | 一区二区视频在线免费观看 | 色黄www小说| 亚洲伊人色 | 在线观看第一页 | 中文一区二区三区在线观看 | 日韩电影中文字幕在线观看 | 日韩av高潮 | 婷婷性综合 | 黄色免费观看视频 | 一级黄色电影网站 | 探花国产在线 | 欧美日韩不卡一区 | 黄色毛片电影 | 91在线免费视频 | 夜夜夜影院| 欧美国产视频在线 | 狠狠狠狠狠狠天天爱 | 久久免费av电影 | 91在线视频播放 | 免费亚洲黄色 | 精品视频一区在线观看 | 天天操天天干天天综合网 | 夜夜操网站| 91人人射 | 久操视频在线免费看 | 91成人免费在线视频 | 激情五月综合网 | 中文字幕一区二区三区精华液 | 天天操天天添天天吹 | 亚洲精品免费在线 | 亚洲国产一区在线观看 | 午夜久久| 欧美孕妇与黑人孕交 | 久久精品一区 | 国产成人精品av在线 | 欧美福利视频一区 | 国产精品成人自拍 | 国内综合精品午夜久久资源 | 五月婷婷激情网 | 99这里有精品 | 国产久草在线观看 | 国产精品露脸在线 | 国产在线高清 | 在线观看亚洲精品视频 | 成人福利av| 亚洲精品xxx | 久艹视频在线观看 | 成人av资源 | 久久不色 | 亚洲天堂免费视频 | 国产日韩精品欧美 | 91精品国产电影 | 色噜噜日韩精品一区二区三区视频 | 亚洲天天在线日亚洲洲精 | 久久久资源 | 五月天久久久久久 | 免费观看www小视频的软件 | 97国产大学生情侣白嫩酒店 | 午夜婷婷在线观看 | 欧美另类美少妇69xxxx | 最近中文字幕国语免费高清6 | 色婷婷狠狠18 | 色婷婷福利 | 国产资源| 国产激情电影综合在线看 | 日韩 在线观看 | 欧美激情第28页 | 亚洲免费小视频 | 日韩成人邪恶影片 | 亚洲黄色在线免费观看 | 精品国产一区二区三区久久久久久 | 国产亚洲精品福利 | 欧美日韩一区二区在线观看 | 国产成人精品一区二 | 999成人免费视频 | 日韩乱理 | 久久草网站| 婷婷色综合 | 波多野结衣电影久久 | 中文字幕日韩免费视频 | 亚洲乱码久久久 | 五月情婷婷 | 人人超碰免费 | 91av在线视频播放 | 国产精品一区二区免费 | 成人av影视在线 | 亚洲黄色免费网站 | 天天躁天天操 | 亚洲有 在线 | 亚洲综合射 | 久久成人精品 | 九九爱免费视频 | 99久久精品国产一区二区成人 | av在线免费播放网站 | 九九久久久久久久久激情 | 在线观看免费黄视频 | 91精品在线播放 | 亚洲一级性 | 福利电影一区二区 | 国产精品久久久一区二区三区网站 | 永久免费视频国产 | av一级网站 | 中文字幕无吗 | 激情五月伊人 | 狠狠色伊人亚洲综合网站色 | 亚洲国产精品第一区二区 | 久久久久成人精品 | 精品国产成人av在线免 | 欧洲亚洲精品 | 欧美精品一区在线发布 | 日日爱av | 99久久久国产精品 | 狠狠色免费 | 久久精品官网 | 国产黄色大全 | av高清一区二区三区 | 亚洲精品自拍视频在线观看 | 精品久久电影 | 成人久久视频 | 超碰伊人网 | 麻豆久久精品 | 69精品久久久 | 丰满少妇一级 | 91精品国自产在线 | 色在线视频 | 亚洲高清精品在线 | 欧美精品三级在线观看 | 高清一区二区三区av | 美女免费视频黄 | 精品国产一区二区在线 | 亚洲精品在线看 | 日韩激情影院 | 婷婷在线免费视频 | 婷婷久久精品 | 99久久精品久久亚洲精品 | 高清不卡一区二区在线 | 国产激情免费 | 青青河边草免费 | 国产一级片毛片 | 国产97色 | 福利视频一二区 | 欧美不卡视频在线 | 久久久久国产精品免费 | 久久精品99久久 | 国产一区二区手机在线观看 | a v在线视频 | 久久免费看a级毛毛片 | 免费在线a | 欧美特一级 | 日韩日韩日韩日韩 | 国产在线中文 | 狠狠插天天干 | 人人干天天射 | 亚洲精品视频在线观看视频 | 日韩亚洲在线 | 91亚洲狠狠婷婷综合久久久 | 色婷婷狠狠18 | 国产亚洲精品久久久久久移动网络 | 国产小视频福利在线 | 亚在线播放中文视频 | 日韩电影在线观看一区二区 | 天天操比| 国产精品毛片一区视频播不卡 | 亚洲在线激情 | 六月色播| 国产精品女人网站 | 国产一级在线观看视频 | 黄色av大片 | 蜜桃视频成人在线观看 | 国产精品涩涩屋www在线观看 | 日韩欧美精品在线视频 | 热久久免费视频精品 | 99re8这里有精品热视频免费 | 国产一级精品绿帽视频 | 久久香蕉影视 | 五月天中文字幕mv在线 | 久久久www成人免费精品 | 欧美一级欧美一级 | 国产一区二区免费看 | 一二三精品视频 | 一区二区伦理 | 97超碰站 | 天天搞夜夜骑 | av在线8| 日韩精品视频免费专区在线播放 | 992tv又爽又黄的免费视频 | 久久中国精品 | av亚洲产国偷v产偷v自拍小说 | 日韩精品不卡在线观看 | 成人91免费视频 | 亚洲精品午夜国产va久久成人 | 91中文字幕在线播放 | 日本大片免费观看在线 | 久草a在线 | 国产精品美女在线 | 国产亚洲成人网 | 国产在线不卡精品 | 视频在线观看日韩 | 中文字幕永久 | 亚洲狠狠操 | 在线观看视频福利 | 精品在线免费观看 | 亚洲国产精品500在线观看 | 亚洲电影自拍 | 高清国产在线一区 | 在线成人小视频 | 成人黄色大片在线免费观看 | 国产伦理一区 | 五月婷婷激情综合 | 国产美女免费视频 | 999视频网站 | 综合网av| 亚洲一区在线看 | 欧美日韩一区二区免费在线观看 | 久久第四色 | 六月天色婷婷 | 免费在线观看av | 久久福利 | 美女免费视频观看网站 | 天天鲁天天干天天射 | 亚州国产精品视频 | 日韩亚洲在线视频 | 久草香蕉在线 | 欧美精品二区 | 91女子私密保健养生少妇 | 亚洲精品自拍视频在线观看 | 国产精品美女久久久久aⅴ 干干夜夜 | 午夜少妇一区二区三区 | 久久艹艹 | 亚洲国产影院 | 国产精品久久久久永久免费 | 国产一级电影网 | 久久久麻豆精品一区二区 | 69av在线播放 | 久草视频免费在线观看 | 一区二区三区精品在线视频 | 久久精品国产久精国产 | 久草视频免费在线观看 | 成人h视频在线播放 | 国产69精品久久99的直播节目 | 久久精品一区二 | 国产亚洲在线视频 | 天天操天天干天天插 | 免费在线观看黄网站 | 国产精品九九九 | 91黄在线看 | 91福利影院在线观看 | 国产v在线 | 国产午夜精品一区二区三区四区 | 欧美日韩亚洲第一 | 九九九九热精品免费视频点播观看 | 九九九九精品 | 九九天堂| 97色涩 | 国产精品1区2区在线观看 | 日日夜夜狠狠 | 久久免费视屏 | 日韩高清免费在线观看 | 成人免费xyz网站 | 日韩精品视频免费在线观看 | 天天爽综合网 | 欧美日韩国产在线精品 | 成人国产亚洲 | av在线影片| 福利视频 | 国产精品视频app | 97电影院网 | 天天艹天天干天天 | 久久久久亚洲国产 | 超碰免费成人 | 毛片一区二区 | 日韩高清在线一区二区三区 | 亚洲国产美女久久久久 | 91系列在线观看 | 四虎影视av| 日韩高清无线码2023 | 丁香六月婷婷开心婷婷网 | 色成人亚洲 | 国产精品久久久久久99 | 精品久久久久免费极品大片 | 免费观看国产视频 | 国产美腿白丝袜足在线av | 国产剧情在线一区 | 五月的婷婷 | 国产精品国产三级在线专区 | 色成人亚洲 | 91九色视频观看 | 国产一区二区在线免费播放 | 成人小视频在线 | 偷拍精偷拍精品欧洲亚洲网站 | 免费看亚洲毛片 | 国产码电影 | 四虎成人精品 | 国产精品自产拍在线观看中文 | 丁香电影小说免费视频观看 | 91中文字幕在线视频 | 六月天色婷婷 | 亚洲视屏在线播放 | 婷婷日日 | 成人精品久久 | 国产精品视频观看 | 国精产品满18岁在线 | 亚洲免费在线播放视频 | 日韩在线第一区 | 玖玖视频在线 | 精品国产aⅴ一区二区三区 在线直播av | 日韩精品2区| 免费黄色av电影 | 在线综合 亚洲 欧美在线视频 | 午夜10000 | 香蕉视频在线视频 | 特级xxxxx欧美 | a天堂最新版中文在线地址 久久99久久精品国产 | 91九色视频在线 | 天天干,天天射,天天操,天天摸 | 国产成人精品一区二区三区在线 | avav片| 国产激情小视频在线观看 | 波多野结衣亚洲一区二区 | 久久人人爽人人 | 女女av在线 | 五月婷婷视频在线 | 中文字幕 国产专区 | 国产精品久久久一区二区三区网站 | 午夜国产一区 | 91精品啪 | 日韩三级视频 | 欧美va日韩va | 久热久草在线 | 日韩理论片在线 | 亚洲国产日韩一区 | a v在线视频 | 亚洲精品在线免费观看视频 | 国产高清在线精品 | 久久久久久高潮国产精品视 | 久久精品网 | 成人av一区二区三区 | 国产精品18videosex性欧美 | 欧美性高跟鞋xxxxhd | 久久手机看片 | 久久久久久黄 | 西西444www高清大胆 | www欧美色| 亚洲首页 | 日韩精品一区二区三区水蜜桃 | 成人免费共享视频 | 久久久久这里只有精品 | 九九热视频在线 | 在线中文字幕一区二区 | 久久草精品 | 久久久一本精品99久久精品 | 中文在线字幕观看电影 | bbbbb女女女女女bbbbb国产 | 97成人精品视频在线观看 | 久久黄色a级片 | 精品人人爽 | 成人少妇影院yyyy | 超碰com | 亚洲区视频在线观看 | 五月婷婷在线综合 | 黄色av网站在线观看免费 | 国产在线观看av | 麻豆影视在线免费观看 | 亚洲成人免费 | 亚洲激情视频 | 综合五月| 亚洲精品成人免费 | 在线免费三级 | 91插插视频| 成人在线电影观看 | 国产婷婷在线观看 | 午夜性生活 | 超碰国产在线播放 | 国产成人三级一区二区在线观看一 | 国产不卡在线看 | 久久99热精品 | 五月天综合色 | 99婷婷狠狠成为人免费视频 | 狠狠操狠狠干天天操 | 成在人线av | 国产色综合天天综合网 | 精品理论片 | 精品亚洲成a人在线观看 | 亚洲人成免费网站 | 欧美不卡视频在线 | 久久免费大片 | 国产精品18久久久久久不卡孕妇 | 婷婷色中文网 | 日韩理论在线 | 国模视频一区二区 | 婷婷色吧| 亚洲干| av在线之家电影网站 | 日本精品午夜 | 久久亚洲视频 | 一区二区三区日韩视频在线观看 | 91女子私密保健养生少妇 | 国产午夜精品一区二区三区欧美 | 三级毛片视频 | 久久亚洲私人国产精品 | 日韩视频一区二区在线观看 | 久久人91精品久久久久久不卡 | 成人久久18免费网站麻豆 | 国产精品一区二区三区99 | 丁香av在线 | 国产综合婷婷 | 亚洲成年人在线播放 | 中文字幕在线播放一区二区 | 一级淫片在线观看 | www·22com天天操 | 欧美日韩视频在线一区 | 91成人精品一区在线播放69 | 亚洲一区尤物 | 久久久久久久久久久久国产精品 | 天天激情站 | 日韩精品一区二区三区视频播放 | 99精品免费在线观看 | 手机看片国产日韩 | 国产破处在线视频 | 一本一道波多野毛片中文在线 | 国产xx在线 | 欧美日韩三级 | 国产精品99蜜臀久久不卡二区 | 亚洲在线综合 | 中文字幕 二区 | 五月激情五月激情 | 欧美激情视频一区二区三区免费 | 日韩精品无 | 综合精品久久久 | 黄色av电影网 | 国产在线999| 日本公乱妇视频 | 91人人揉日日捏人人看 | 天天干天天操天天干 | 久久亚洲精品电影 | 人人干人人干人人干 | 久久看免费视频 | 国产免费中文字幕 | 中文字幕日韩免费视频 | 久久久久久美女 | 久久国产精品电影 | 91成人看片 | av电影免费 | 亚洲伊人网在线观看 | av在线激情 | 欧美一级免费黄色片 | 少妇搡bbbb搡bbb搡aa | 成人黄色国产 | 日韩久久精品一区二区 | 日本不卡123 | 97在线免费视频观看 | 片网址| 成人一区二区三区在线 | 精品国产成人 | 亚洲成人在线免费 | 国产一级视屏 | 欧美一区二区三区激情视频 | 欧美一级小视频 | 亚洲精品国产精品国产 | 国产日产欧美在线观看 | 久久久久久久久久久影视 | 99精品国产亚洲 | 国产主播大尺度精品福利免费 | 午夜av电影院 | 成人网页在线免费观看 | 国产在线成人 | 久久久999精品视频 国产美女免费观看 | 一区二区三区高清 | 一区二区在线不卡 | 久久久久电影网站 | 国产成人av在线影院 | 黄色成年片 | 亚洲视频456 | 亚洲午夜精 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 在线观看黄网站 | 亚洲女人天堂成人av在线 | 综合激情婷婷 | www.狠狠操.com | 国产精品久久久久久爽爽爽 | a天堂免费 | 欧美在线视频免费 | 欧美在线视频日韩 | 久久99精品国产麻豆宅宅 | 97视频在线观看成人 | 免费日韩三级 | 成年人精品 | 亚洲最快最全在线视频 | 国产vs久久| 国产精品美女久久久久久免费 | 97成人在线 | 91福利国产在线观看 | 久草久热 | 玖玖精品视频 | 欧美夫妻生活视频 | 日韩一二三在线 | 日韩精品免费在线观看视频 | 国产不卡片 | 四川妇女搡bbbb搡bbbb搡 | 久久免费视屏 | 国产美女精品视频 | 国产精品黄色影片导航在线观看 | 国产精品99蜜臀久久不卡二区 | 麻豆一精品传二传媒短视频 | 香蕉视频日本 | 欧美午夜精品久久久久久孕妇 | 玖玖视频精品 | 国产在线小视频 | 久热免费 | 伊人影院av| 中文字幕一区二区三区四区视频 | 欧美日韩高清一区二区 | 免费黄色看片 | 亚洲三级精品 | 欧美日比视频 | 国产精品99久久久久 | 国产精品24小时在线观看 | 97成人精品视频在线观看 | 国产视频不卡一区 | 成年人在线免费看视频 | 国产精品久久久久久久免费 | 久久影院午夜论 | 99热在线观看免费 | 色999精品 | 久久久观看 | 日韩久久久久久久久 | 久久综合福利 | 97狠狠干| 国产黑丝袜在线 | 91成人午夜 | av中文天堂 | 久久精视频 | 久久婷婷国产 | 蜜臀久久99精品久久久酒店新书 | 日韩精品一区二区三区在线播放 | 国产在线欧美在线 | av在线电影网站 | 久草国产视频 | 国产精品二区在线 | 国产在线观看你懂得 | 手机成人在线 | 久久不卡视频 | 69av久久 | 久草在线国产 | 超碰在线免费福利 | 国产91精品一区二区绿帽 | 亚洲一区在线看 | 黄色免费网站下载 | 在线观看免费视频 | av电影免费在线播放 | 久久综合狠狠综合久久激情 | 国产精品中文在线 | 日日躁夜夜躁aaaaxxxx | 四虎在线观看精品视频 | 五月天丁香 | 亚洲一区黄色 | 免费在线黄色av | 亚洲 欧洲av | 欧美成人播放 | 中文永久免费观看 | 婷婷久久网站 | 国产在线小视频 | 国产福利久久 | 久久久亚洲电影 | 午夜精品999| 五月婷婷毛片 | 亚洲国产中文字幕 | 日本久久综合视频 | 久草免费手机视频 | 91久久精品日日躁夜夜躁国产 | 在线不卡中文字幕播放 | 91三级在线观看 | 操操综合 | 91在线精品一区二区 | 黄网站色视频免费观看 | 国产精品涩涩屋www在线观看 | 碰超人人| 97精品伊人| 五月婷婷六月丁香 | 黄色aa久久| 欧美一区二区三区在线视频观看 | 黄色在线网站噜噜噜 | 精品视频99| 国产精品密入口果冻 | 伊人射| 久色网| 久久综合天天 | 在线看片a| 日韩大片免费观看 | 久久黄色片子 | 很黄很色很污的网站 | 欧美日韩中文字幕综合视频 | 视频一区视频二区在线观看 | 国产精品a成v人在线播放 | 国产精品私人影院 | 一区二区三区日韩视频在线观看 | 精品国产精品久久一区免费式 | 91丝袜美腿| 国产伦理精品一区二区 | 午夜电影久久久 | 日韩在线免费视频观看 | 天天艹天天干天天 | 91麻豆操 | 国产成人一区二区三区久久精品 | 99草视频| 一区二区三区久久精品 | 国产精品一区二区免费在线观看 | 日韩午夜视频在线观看 | 处女av在线| 一级性视频 | 久久免费激情视频 | 久久久久久久影视 | 西西www444 | 激情深爱 | 中文久久精品 | 成人午夜免费剧场 | 天天插伊人 | 日b视频国产 | 欧洲一区精品 | 亚洲成a人片77777kkkk1在线观看 | 久草在线视频首页 | 密桃av在线| 中文字幕黄色网址 | 国产午夜精品一区二区三区嫩草 | 999视频在线播放 | 天天天操天天天干 | 亚洲激情六月 | 亚洲欧美乱综合图片区小说区 | 天天做日日做天天爽视频免费 | 97香蕉久久国产在线观看 | 天堂av影院 | 黄免费网站 | 麻豆果冻剧传媒在线播放 | 五月婷婷深开心 | 在线中文字幕电影 | 91黄色免费网站 | 一级免费片 | 亚洲a资源 | 综合黄色网 | 激情黄色一级片 | 亚洲视频一级 | 狠狠地日 | 中文字幕在线观看免费高清电影 | 99综合视频 | 日韩视频专区 | 麻豆一二三精选视频 | www.玖玖玖 | 国产精品毛片一区视频播 | 综合天堂av久久久久久久 | 久久99在线观看 | 又黄又爽免费视频 | a国产精品 | 婷婷婷国产在线视频 | av看片网址 | 91三级在线观看 | 久久精品电影网 | 日韩videos | 91精品成人 | 色婷婷激婷婷情综天天 | 日本mv大片欧洲mv大片 | av在观看 | 日韩超碰 | 日韩av在线一区二区 | 中文字幕在线一二 | 91精品视频免费在线观看 | 中文字幕精品视频 | 中文字幕精品www乱入免费视频 | 国产视频每日更新 | 国产精品久久久av久久久 | 五月婷婷激情网 | 亚洲aⅴ免费在线观看 | 国产99久久久国产精品免费看 | 91视频久久久久久 | 亚洲永久精品国产 | 91黄色小网站 | 粉嫩av一区二区三区四区在线观看 | 免费黄色看片 | 国产精品18久久久久白浆 | 免费观看xxxx9999片 | 视频在线播放国产 | 一级久久久 | 国产特级毛片aaaaaa毛片 | 夜夜爽夜夜操 | 色婷婷一区 | 日韩乱码中文字幕 | 蜜臀aⅴ国产精品久久久国产 | 国产一区私人高清影院 | 在线视频成人 | 三级黄在线 | 黄色视屏免费在线观看 | 精品久久网| 五月天婷婷在线播放 | 最新真实国产在线视频 | 91av在线电影 | 天天干一干 | 韩日电影在线观看 | 国产99色| 色五月色开心色婷婷色丁香 | 又黄又刺激视频 | 97av视频在线观看 | 国产精品99久久久久久小说 | 亚洲视频999 | 日韩r级在线 | 天天搞天天| 超碰个人在线 | 国产高清在线看 | 在线观看免费黄视频 | 国产一区二区手机在线观看 | 色婷婷激婷婷情综天天 | 欧美国产精品久久久久久免费 | 婷婷www | av先锋中文字幕 | 欧美一级高清片 | 中文视频在线播放 | 日本久久高清视频 | www视频在线免费观看 | 六月丁香色婷婷 | 在线电影日韩 | 一二三区在线 | 成人香蕉视频 | 草草草影院 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲精品中文字幕在线观看 | 夜夜干夜夜| 91精品国产92久久久久 | 国产精品成人品 | 人人插人人艹 | 亚洲国产午夜视频 | 日色在线视频 | 日韩av中文字幕在线免费观看 | 精品久久久久久久久久 | 中文字幕黄色 | 夜夜骑日日 | 国产精品久久久久久久7电影 | 99精品视频在线观看免费 | 蜜臀久久99精品久久久无需会员 | 日韩啪啪小视频 | 国产少妇在线观看 | 看污网站 | 国际精品久久久久 | 日日夜夜av | 2024国产在线 | 色婷婷综合在线 | 视频一区二区在线 | 国产一级h | 在线视频app | 国产精品青草综合久久久久99 | 亚洲美女免费精品视频在线观看 | 久久乐九色婷婷综合色狠狠182 | 91麻豆精品国产91久久久更新时间 | 国产精品尤物 | 国产日韩欧美在线一区 | 久久超级碰视频 | 91九色蝌蚪视频网站 | 色婷婷av在线 | 欧美激情视频一区二区三区 | 中文字幕在线电影 | 亚洲国产播放 | 黄色片毛片 | 99性视频 | 99热这里精品 | 一本色道久久精品 | 久久国产精品99国产精 | 国产福利精品一区二区 | 久久电影色 | а天堂中文最新一区二区三区 | 亚洲精品美女在线 | 韩国精品视频在线观看 | 美女视频久久黄 | 国产一区福利 | 国产精品久久久久永久免费 | 国产伦精品一区二区三区照片91 | 久久综合九色综合97_ 久久久 | 免费福利在线 | 91免费版成人 | v片在线看 | av一区二区在线观看中文字幕 | 天海冀一区二区三区 | 亚洲无吗视频在线 | 免费成人在线观看 | 欧洲一区二区在线观看 | 免费高清无人区完整版 | 欧美性生交大片免网 | 久久免费99精品久久久久久 | 午夜影院一区 | 欧美日韩1区 | 成人va在线观看 | 国产成人亚洲在线观看 | 亚洲精品久久久久中文字幕m男 | 99久在线精品99re8热视频 | 欧美日韩中文字幕在线视频 | 91免费视频黄| 手机成人免费视频 | 免费看三级 | 国产九九九视频 | 亚洲成人精品av | 国产三级国产精品国产专区50 | 国产精品久久一卡二卡 | 欧美精品一区二区性色 | 99麻豆久久久国产精品免费 | 99国产精品久久久久久久久久 | 91在线资源| 国产中文字幕网 | 激情图片区 | 色婷婷综合久色 | 高潮久久久 | 日本久久片 | 成年人黄色在线观看 | 色欧美88888久久久久久影院 | 婷色在线| 欧美怡红院视频 | 手机成人在线 | 午夜精品久久久久久中宇69 | 99精品欧美一区二区蜜桃免费 | 夜又临在线观看 | 999日韩 | 亚洲理论片在线观看 | 久久人人97超碰国产公开结果 | 丁香六月激情婷婷 | 丁香六月色 | 97超碰站| 欧美日韩三级 | 久久免费试看 | 成年人毛片在线观看 | 久久午夜免费观看 | 亚洲精品伦理在线 | 日韩欧美国产视频 | 国产不卡一 | 亚州激情视频 | 久久综合色影院 | 中文字幕在线播放日韩 | av免费电影在线观看 | 国产精品一区二区在线观看免费 | 国产精品9999久久久久仙踪林 | 黄色三级免费看 | 91网在线| 精品国产一区二区三区av性色 | 在线观看av不卡 | 成年在线观看 | 最新超碰在线 | 亚洲精品乱码久久久久v最新版 | 三级a视频| 久热av在线| 91av在线播放 | 国产一区二区在线观看免费 | 亚洲人成综合 | 国产精品久久久久久久99 | 亚洲人在线视频 | 久久久高清 | av天天在线观看 | 亚洲va欧洲va国产va不卡 | 久久成人国产精品入口 | 日韩狠狠操| 久久刺激视频 | 国色天香av| 久久精品一二三区 | 亚洲资源在线网 | 国产精品久久久久永久免费 | 久久综合九色综合久99 | 亚洲天堂网站视频 | 久久久久久久久久久影视 | 超碰免费观看 | 婷香五月 | 麻豆视频免费入口 | 国产女教师精品久久av | 丁香综合av | 国产视频亚洲精品 | 国产一区精品在线观看 | 久久99偷拍视频 | 天天爱天天射天天干天天 | bayu135国产精品视频 | 国产日韩欧美在线播放 | 极品国产91在线网站 | 91麻豆国产| 免费av试看| 91爱爱免费观看 | 国产在线播放一区二区三区 | 一级黄色在线免费观看 | 久久久精品99 | 日韩精品一区二区三区免费视频观看 | 欧美精彩视频在线观看 | 九九综合在线 | 久久精品婷婷 | 一区二区av| 国产色在线观看 | 日日夜夜综合 | 91丝袜美腿 | 国产视频999| 国产日韩精品一区二区三区在线 | 欧美精品九九99久久 | 午夜天使 | 日韩字幕| 日韩中文久久 | 国产成人三级一区二区在线观看一 | 国产精品久久久久久久久久久不卡 | 亚洲国产av精品毛片鲁大师 | 九九久久免费视频 | 免费一级黄色 | 成人一区二区三区在线 | 久久99久久99免费视频 | 欧美整片sss | 国产在线91精品 | 99爱视频| 亚洲精品啊啊啊 | 精品 激情 | 欧洲亚洲激情 | 日本性高潮视频 | 在线电影中文字幕 | 国产美女黄网站免费 | 日日摸日日添日日躁av | 久久综合精品一区 | 国产精品久久99精品毛片三a | 久久久久女人精品毛片九一 | 欧美日韩国产一区 | 欧美日韩高清不卡 | 日韩在线观看的 | 久久免费一级片 | 国产午夜精品理论片在线 | 亚洲精品视频偷拍 | 欧美极度另类性三渗透 | 婷婷四房综合激情五月 | 天天色天天射综合网 | va视频在线观看 | 国产高清在线观看 | 免费看网站在线 | 日韩成人免费在线观看 | 人人干人人超 | 亚洲伊人第一页 | 久久久免费精品 | 亚洲影院国产 | 欧美日韩免费在线观看视频 | 亚洲精品乱码久久久久v最新版 | 日韩中文字幕电影 | 天天爱综合 | 国产日本高清 | 欧美日韩xxxxx | 成人在线视频论坛 | 国产原创av在线 | 99色| 99 精品 在线| 中文字幕在线观看免费 | 99国内精品久久久久久久 | 久久一精品 | 国产又粗又长又硬免费视频 | 国产五十路毛片 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩免费观看视频 | 不卡的av片 | 国产亚洲精品久久久久久电影 | 久久不射网站 | 久久夜色精品国产欧美乱极品 | 男女激情片在线观看 | 国产成人精品一区二 | 久久久亚洲影院 | av免费看电影 | 日本久久影视 | 日本69hd| 国产美女在线免费观看 | 激情动态 | 久热av在线 | 免费久久片| 国产亚洲情侣一区二区无 | 免费高清男女打扑克视频 | 国产高清免费在线播放 | 国产在线播放一区二区 | 日本不卡一区二区三区在线观看 | 黄色av电影在线观看 | 国产小视频在线 | 五月天视频网站 | 午夜视频免费播放 | 日韩r级电影在线观看 | 九九影视理伦片 | 97福利在线 | 免费成人在线网站 | 日韩亚洲国产中文字幕 | 日产乱码一二三区别在线 | 欧美午夜精品久久久久久浪潮 | 一区二区精品国产 | 久久久免费看片 | 精品国产亚洲在线 | 特及黄色片| 免费观看www7722午夜电影 | 免费在线色视频 | 99这里精品 | 中文伊人 | 亚洲国产精品成人综合 | 精品久久亚洲 | 国产精品免费麻豆入口 | 精品久久久久久久 |