当前位置: 首页 > news >正文

宽屏企业网站源码有意境的设计公司名字

宽屏企业网站源码,有意境的设计公司名字,做电影网站免责声明有用吗,网站推广软件信息将 epoll 服务器 客户端拿来用 客户端#xff1a; 写一个界面#xff0c;里面有注册登录 服务器#xff1a;处理注册和登录逻辑#xff0c;注册的话将注册的账号密码写入数据库#xff0c;登录的话查询数据库中是否存在账号#xff0c;并验证密码是否正确 额外功能 写一个界面里面有注册登录 服务器处理注册和登录逻辑注册的话将注册的账号密码写入数据库登录的话查询数据库中是否存在账号并验证密码是否正确 额外功能客户端登录的时候服务器向客户端发送一个验证码只有验证码也正确的时候才能登录成功· 服务器部分 #include stdio.h #include string.h #include unistd.h #include stdlib.h #include sys/types.h #include sys/stat.h #include fcntl.h #include pthread.h #include semaphore.h #include wait.h #include signal.h #include sys/socket.h #include arpa/inet.h #include sys/socket.h #include sys/ipc.h #include sys/sem.h #include semaphore.h #include sys/msg.h #include sys/shm.h #include sys/un.h #include sys/epoll.h #include sqlite3.htypedef struct sockaddr_in addr_in_t; typedef struct sockaddr addr_t; typedef struct sockaddr_un addr_un_t;enum Type {TYPE_REGIST,TYPE_LOGIN, // TYPE_CHAT };typedef struct User {char name[20];char pswd[20]; // int sock;}user_t;typedef struct Pack {enum Type type;char name[20];char pswd[20];char tarname[20];char text[1024]; }pack_t; void read_data(int client); int insert_user(user_t user); int find_user(const char *username); int callback(void * arg,int argc,char** argv,char** col); //user_t user_arr[50]{0}; //int user_len0; user_t user{0,0}; int main(int argc, const char *argv[]) {if(argc !2){printf(请输入端口号\n);return 1;}int portatoi(argv[1]);int serversocket(AF_INET,SOCK_STREAM,0);addr_in_t addr{0};addr.sin_familyAF_INET;addr.sin_porthtons(port);addr.sin_addr.s_addrinet_addr(0.0.0.0);if(bind(server,(addr_t*)addr,sizeof(addr))-1){perror(bind);return 1;}listen(server,10);int epfdepoll_create1(EPOLL_CLOEXEC);struct epoll_event epoll_stdin{.eventsEPOLLIN,.data.fd0};struct epoll_event epoll_server{.eventsEPOLLIN,.data.fdserver};epoll_ctl(epfd,EPOLL_CTL_ADD,0,epoll_stdin);epoll_ctl(epfd,EPOLL_CTL_ADD,server,epoll_server);struct epoll_event arr[50]{0};while(1){int lenepoll_wait(epfd,arr,50,-1);for(int i0;ilen;i){int fdarr[i].data.fd;if(fdserver){printf(有客户端连接\n);int clientaccept(server,0,0);struct epoll_event epoll_client{.eventsEPOLLIN,.data.fdclient};epoll_ctl(epfd,EPOLL_CTL_ADD,client,epoll_client);}else if(fd0){char buf[64];scanf(%63s,buf);while(getchar()!10);printf(键盘键入数据%s\n,buf);}else{read_data(fd);}}}return 0; }int insert_user(user_t user) { // user_arr[user_len]user; // user_len;sqlite3* dbNULL;if(sqlite3_open(./test.db,db)!SQLITE_OK){printf(数据库打开失败\n);return -1;}strcat(user.name,,);strcat(user.name,user.pswd);strcat(user.name,));char *bufuser.name;char* sqlinsert into user(username,pswd) values(;strcat(sql,buf);char* errmsgNULL;if(sqlite3_exec(db,sql,0,0,errmsg)!SQLITE_OK){return -1;}sqlite3_close(db);return 1; }int find_user(const char* username) { /*for(int i0;iuser_len;i){if(strcmp(username,user_arr[i].name)0){return i;}}return -1; */sqlite3* dbNULL;if(sqlite3_open(./test.db,db)!SQLITE_OK){printf(数据库打开失败\n);return -1;}char* sqlselect * from user where username;strcat(sql,username);char* errmsgNULL;if(sqlite3_exec(db,sql,callback,user,errmsg)!SQLITE_OK){sqlite3_close(db);return -1;}sqlite3_close(db);return 1; } int callback(void * arg,int argc,char** argv,char** col) {user_t* brr(user_t*)arg;strcpy(brr-name,argv[0]);strcpy(brr-pswd,argv[1]);return 1; }void read_data(int client) {pack_t pack{0};int resread(client,pack,sizeof(pack));switch(pack.type){case TYPE_REGIST:{int resfind_user(pack.name); char *msgNULL;if(res-1){user_t user {0};strcpy(user.name,pack.name);strcpy(user.pswd,pack.pswd);insert_user(user);msg注册成功;}else{msg该账号已存在;}strcpy(pack.text,msg);write(client,pack,sizeof(pack));break;}case TYPE_LOGIN:{int resfind_user(pack.name);char *msgNULL;if(res-1){msg该账号不存在;}else{ // user_t useruser_arr[res];if(strcmp(user.pswd,pack.pswd)0){msg登录成功; // user_arr[res].sockclient;}else{msg密码错误;}}strcpy(pack.text,msg);write(client,pack,sizeof(pack));break;} /*case TYPE_CHAT:{char *msgNULL;int resfind_user(pack.tarname);if(res-1){msg该用户不存在;strcpy(pack.text,msg);write(client,pack,sizeof(pack));}else{user_t useruser_arr[res];if(user.sock0){msg用户未登录;strcpy(pack.text,msg);write(client,pack,sizeof(pack));}else{int tarsockuser.sock;write(tarsock,pack,sizeof(pack));}}break;} */} }客户端部分 #include stdio.h #include string.h #include unistd.h #include stdlib.h #include sys/types.h #include sys/stat.h #include fcntl.h #include pthread.h #include semaphore.h #include wait.h #include signal.h #include sys/socket.h #include arpa/inet.h #include sys/socket.h #include sys/ipc.h #include sys/sem.h #include semaphore.h #include sys/msg.h #include sys/shm.h #include sys/un.h #include sys/epoll.h #include sqlite3.htypedef struct sockaddr_in addr_in_t; typedef struct sockaddr addr_t; typedef struct sockaddr_un addr_un_t;enum Type {TYPE_REGIST,TYPE_LOGIN, // TYPE_CHAT };typedef struct Pack {enum Type type;char name[20];char pswd[20];char tarname[20];char text[1024]; }pack_t;void *thread_main(void *arg) {int client*(int*)arg;while(1){pack_t pack{0};int resread(client,pack,sizeof(pack));if(res0){break;}switch(pack.type){case TYPE_REGIST:{printf(%s\n,pack.text);break;}case TYPE_LOGIN:{printf(%s\n,pack.text);break;} // case TYPE_CHAT: // { // printf(接收到消息%s\n,pack.text); // break; // }}} }int main(int argc, const char *argv[]) {if(argc !2){printf(请输入端口号\n);return 1;}int portatoi(argv[1]);int clientsocket(AF_INET,SOCK_STREAM,0);addr_in_t addr{0};addr.sin_familyAF_INET;addr.sin_porthtons(port);addr.sin_addr.s_addrinet_addr(192.168.133.128);if(connect(client,(addr_t*)addr,sizeof(addr))-1){perror(connect);return 1;}pthread_t id;pthread_create(id,0,thread_main,client);pthread_detach(id);while(1){int ch-1;printf(1.注册\n);printf(2.登录\n); // printf(3.聊天\n);printf(0.退出\n);printf(请选择);scanf(%d,ch);while(getchar()!10);switch(ch){case 1:{pack_t pack{0};printf(请输入账号);scanf(%s,pack.name);while(getchar()!10);printf(请输入密码);scanf(%s,pack.pswd);while(getchar()!10);pack.typeTYPE_REGIST;write(client,pack,sizeof(pack));break;}case 2:{pack_t pack{0};printf(请输入账号);scanf(%s,pack.name);while(getchar()!10);printf(请输入密码);scanf(%s,pack.pswd);while(getchar()!10);pack.typeTYPE_LOGIN;write(client,pack,sizeof(pack));break;} /* case 3:{pack_t pack{0};pack.typeTYPE_CHAT;scanf(%s %s,pack.tarname,pack.text);printf(tarname %s\n,pack.tarname);while(getchar()!10);write(client,pack,sizeof(pack));break;} */case 0:{break;}}}return 0; }
http://www.hkea.cn/news/14529220/

相关文章:

  • 磐安网站建设wordpress插件随机文章
  • 网站的策划和建设方便面网络营销推广方案
  • 濮阳网站建设费用重庆沙坪坝区房价
  • 太仓网站建设服务sem运营有出路吗
  • 建设网站步骤是为什么要用国外服务器做网站
  • 厦门北京网站建设公司给我一个用c 做的网站
  • 国外建设工程网站带有网站开发的图片
  • 襄阳市住房城乡建设部网站苏州商城网站建设
  • 贵州建设厅网站报名系统做签到的网站
  • 江门网站设计找哪家帝国做视频网站
  • 网站建设费可以抵扣进项税吗网络推广公司专业网络
  • 濮阳专业做网站公司网站引导页模板
  • 如何查看网站的空间商外贸网站设计郑州
  • 公司网站开发怎么收费青岛房产信息网
  • 信云科技的vps怎么做网站app download
  • 网站建设百度认证企业计划书范文完整版
  • 巩义网站优化免费做游戏网站
  • 海澜之家网站建设的计划郑州营销型网站建设公司
  • 企业北京响应式网站制作怎么查网站开发的语言
  • 营销型网站模板认识网络营销
  • 怎么写公司网站的文案平面设计师网站都有哪些
  • wordpress建站准备黄山建设厅官方网站
  • 上海建站中心网站广告代码
  • 深圳罗湖区网站建设批量上传网站产品
  • 哪些网站开业做简单海报网站管理系统设置
  • 女生做a视频的网站是什多少网站推广文案怎么写
  • 江苏网站推广公司哪家好涟源市建设局网站
  • 网站设计的价格龙泉市住房和城乡建设局网站
  • 网站建设公司下载手机网站模板网
  • 建设中学校园网站的目的宝塔怎么做两个网站的解析