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

网站流量到底怎样赚钱的东莞58同城招聘网

网站流量到底怎样赚钱的,东莞58同城招聘网,广东网站开发公司电话,外链seo软件下载一、基本成员及功能实现 本项目主要由服务器,消费者,商家,外卖员组成。基本的功能如下。 对所有人: 1、可以注册登录 2、可以修改个人信息 3、可以销户 商家: 1、注册时需要填写售卖商品信息 2、可以修改商品信…

一、基本成员及功能实现

本项目主要由服务器,消费者,商家,外卖员组成。基本的功能如下。

对所有人:

1、可以注册登录

2、可以修改个人信息

3、可以销户

商家:

1、注册时需要填写售卖商品信息

2、可以修改商品信息对自己的商品增删改查

消费者:

1:可以查看商家列表并进入商家列表选购商品

2:可以查看购物车自己已经选购的商品

3:确认完购物车后将商品放入订单列表等待外卖员接单

4:10分钟还未接单将发消息给消费者让其重新下单

5:选购完商品后将选购信息发送给商家

外卖员:

1:可以查看订单列表

2:可以接单并派送

3:将外卖送给消费者后自动结单

服务器:

1:支持所有身份的登录注册功能,分类储存当前用户(商家、消费者、外卖员)

2:对外卖员:储存当前订单列表、需要时打印订单至终端

3:对消费者:支持多个用户同时在线选购以及购物车系统

4:对消费者:支持计时功能到达十分钟后无人接单自动取消订单并提示消费者重新下单

5:会记录所有订单的订单编号和结单时间

6:支持商家和消费者之间的订单传输功能

二、功能展示

参考视频:效果演示-CSDN直播

三、原理实现

1、数据库结构

        本项目使用sqlite数据库,在服务器端需要有一套比较完备的数据库结构。本次项目主要创建了四个不同的数据库,分别是:商家、其他人(消费者和外卖员)、购物车、订单记录。

        对于商家数据库来说,他必须有一个merchant表单用于记录商家用户的用户名和密码。商家的用户名就是商家店铺的名称。将用户名设为主键,不允许重复。每当一个商家注册时,需要填写自己出售的商品,数据库中会自动再创建一个名为该商家的表单用于存储出售的商品信息(商品名称及商品价格)。

        对于其他人来说,要有一个username表单用于记录外卖员和消费者的用户名,防止用户名重复。再创建消费者和外卖员两个表单分别存储用户名和密码。

        对于购物车,只需要当消费者添加商品进购物车时创建,再消费者确认购物车后删除。是一个比较动态的。

        对于记录来说,他会记录订单编号、确认订单时间、结束时间、消费者用户名和外卖员用户名。在确认订单后存入除了结束时间的其他内容,并将订单编号发给外卖员客户端。当外卖员结束订单后将结束时间填入。

2、超时机制

        在消费者确认订单后,会将订单存放在服务器的链表中,链表中有消费者用户名,商家用户名,下单时间、消费者客户端的信息结构体和套接字接口。在存入链表中会设置一个闹钟alarm。在设定时间到了之后向进程发送SIGALRM信号,然后使用signal函数捕捉这种信号后去遍历订单链表,给订单的消费者发信息并将超时的订单删掉。如果订单被外卖员接走,那么也会删除该订单。这样在遍历的时候也找不到要删除的订单,以实现超时机制。

3、信息交互

        本项目的信息交互非常多,这对信息的种类分类有着很高的要求。我是用的是类似tftp协议的信息传输方式,将信息的种类封装进一个字符数组中,然后在服务器端进行解码,并实现相应功能。

最后附上本次项目的主函数源码

int main(int argc, const char *argv[])
{if(signal(SIGALRM,handle)==SIG_ERR){perror("signal error:");return -1;}//打开所有的数据库sqlite3 *shangjialist=NULL;if(sqlite3_open("./shangjialist.db",&shangjialist)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(shangjialist));return -1;}sqlite3 *otherlist=NULL;if(sqlite3_open("./otherlist.db",&otherlist)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(otherlist));return -1;}sqlite3 *gouwuche=NULL;if(sqlite3_open("./gouwuche.db",&gouwuche)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(otherlist));return -1;}sqlite3 *recorder=NULL;if(sqlite3_open("./record.db",&recorder)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(otherlist));return -1;}//初始化所有的数据库init_sqlite(shangjialist,otherlist,recorder);int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error:");return -1;}int reuse = 1;if(setsockopt(sfd,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse))==-1){perror("setsockaddr error:");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(SER_PORT);sin.sin_addr.s_addr=inet_addr(SER_IP);if(bind(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("bind error:");return -1;}if(listen(sfd,128)==-1){perror("listen error:");return -1;}struct sockaddr_in cin;socklen_t socklen=sizeof(cin);int n=2;struct pollfd pfd[1024];pfd[0].fd=0;pfd[0].events=POLLIN;pfd[1].fd=sfd;pfd[1].events=POLLIN;while(1){int res=poll(pfd,n,-1);if(res==0){printf("manba out\n");return -1;}else if(res==-1&&errno!=4){perror("poll error:");return -1;}if(pfd[1].revents==POLLIN){int newfd=accept(sfd,(struct sockaddr*)&cin,&socklen);pfd[n].fd=newfd;pfd[n].events=POLLIN;n++;printf("[%s:%d:%d]已连接\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port),newfd);}if(pfd[0].revents==POLLIN){}for(int i=2;i<n;i++){if(pfd[i].revents==POLLIN){char buf[111]="";recvfrom(pfd[i].fd,buf,sizeof(buf),0,(struct sockaddr*)&cin,&socklen);short *type_point=(short*)buf;switch(ntohs(*type_point)){case 1001://消费者注册信息{char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;char sbuf[111]="";if(new_member_other(otherlist,name_point,psd_point,"xiaofeizhe")!=0)//注册失败,用户名重复{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s注册成功\n",name_point);break;}case 1002://消费者登陆成功后发来的信息,提示服务器将所有商家名称传给消费者{get_merchant(pfd[i].fd,shangjialist);break;}case 1003://消费者请求查看商家的所有商品{char *name_point=buf+2;get_table(pfd[i].fd,shangjialist,name_point);break;}case 1004:{char *name_point=buf+2;//用户名char *good_name_point=buf+strlen(name_point)+3;//商品名称char *mer_name_point=buf+strlen(name_point)+strlen(good_name_point)+4;//商家名称add_gouwuche(pfd[i].fd,shangjialist,gouwuche,name_point,good_name_point,mer_name_point);break;}case 1005://将购物车的信息发送给消费者等待确认信息{char *name_point=buf+2;get_table(pfd[i].fd,gouwuche,name_point);break;}case 1006://消费者发来确认信息{char *name_point=buf+2;char *mer_name_point=buf+strlen(name_point)+3;head=add_dingdan(head,name_point,mer_name_point,cin,pfd[i].fd);send_msg_to_mer(gouwuche,name_point,mer_name_point);del_gouwuche(gouwuche,name_point);break;}case 1007://修改密码信息{short *ide_point=(short *)(buf+2);char *name_point=buf+4;char *psd_point=buf+strlen(name_point)+5;short identity=ntohs(*ide_point);char sbuf[111]="";if(identity==0){if(update_info(otherlist,"xiaofeizhe",name_point,psd_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}}else if(identity==1){if(update_info(otherlist,"waimaiyuan",name_point,psd_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}}else if(identity==2){if(update_info(shangjialist,"merchant",name_point,psd_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}}else{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 1008://销户{char sbuf[111]="";short *ide_point=(short *)(buf+2);short identity=ntohs(*ide_point);char *name_point=buf+4;if(del_user(shangjialist,otherlist,identity,name_point,pfd[i].fd)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2001://商家注册信息{char sbuf[111]="";char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;if(new_member_shangjia(shangjialist,name_point,psd_point)!=0){strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s注册成功\n",name_point);break;}case 2002://商家添加商品信息{char sbuf[111]="";char *name_point=buf+2;short *count_point=(short *)(buf+strlen(name_point)+3);char *good_name_point=buf+strlen(name_point)+5;short *price_point=(short *)(good_name_point+strlen(good_name_point)+1);if(new_good(shangjialist,name_point,count_point,good_name_point,price_point)!=0){strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s添加商品\n",name_point);break;}case 2003://商家修改商品前获取商品列表{char *name_point=buf+2;get_table(pfd[i].fd,shangjialist,name_point);break;}case 2004://商家增加商品{char sbuf[111]="";char *good_name_point=buf+2;char *price_point=buf+strlen(good_name_point)+3;char *name_point=buf+strlen(good_name_point)+strlen(price_point)+4;if(add_good(pfd[i].fd,shangjialist,good_name_point,price_point,name_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2005://商家删除商品{char sbuf[111]="";char *name_point=buf+2;char *good_name_point=buf+strlen(name_point)+3;if(del_good(pfd[i].fd,shangjialist,name_point,good_name_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2006://商家修改商品名称{char sbuf[111]="";char *name_point=buf+2;char *good_name_point=buf+strlen(name_point)+3;char *new_good_name_point=buf+strlen(name_point)+strlen(good_name_point)+4;if(update_good_name(shangjialist,name_point,good_name_point,new_good_name_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2007://商家修改商品价格{char sbuf[111]="";char *name_point=buf+2;char *good_name_point=buf+strlen(name_point)+3;char *new_price_point=buf+strlen(name_point)+strlen(good_name_point)+4;if(update_good_price(shangjialist,name_point,good_name_point,new_price_point)==0){strcpy(sbuf,"success");}else{strcpy(sbuf,"fail");}send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}case 2008://商家登录后将商家的信息存入链表{char *name_point=buf+2;add_sj(pfd[i].fd,cin,name_point);break;}case 3001://外卖员注册信息{char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;char sbuf[111]="";if(new_member_other(otherlist,name_point,psd_point,"waimaiyuan")!=0)//注册失败,用户名重复{strcpy(sbuf,"fail");send(pfd[i].fd,sbuf,sizeof(sbuf),0);break;}strcpy(sbuf,"success");send(pfd[i].fd,sbuf,sizeof(sbuf),0);printf("%s注册成功\n",name_point);break;}case 3002://外卖员获取当前订单{get_dingdan(pfd[i].fd);break;}case 3003://确认订单后将大部分订单记录存入数据库{char *name_point=buf+2;char *ddname_point=buf+strlen(name_point)+3;save(recorder,name_point,ddname_point,pfd[i].fd);break;}case 3004://当结束订单后修改订单结束时间{char *ddnumb_point=buf+2;save2(recorder,ddnumb_point);break;}case 4001://登录信息{char *name_point=buf+2;char *psd_point=buf+strlen(name_point)+3;login(pfd[i].fd,shangjialist,otherlist,name_point,psd_point);break;}case 4002://退出消息{pfd[i].fd=-1;	printf("[%s:%d]已下线\n",inet_ntoa(cin.sin_addr),ntohs(cin.sin_port));break;}}}}}return 0;
}

       

int main(int argc, const char *argv[])
{int sfd=socket(AF_INET,SOCK_STREAM,0);if(sfd==-1){perror("socket error:");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(SER_PORT);sin.sin_addr.s_addr=inet_addr(SER_IP);if(connect(sfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("connect error:");return -1;}pid_t pid=fork();if(pid==0){//子进程,用于接受消息char buf[111]="";while(1){sleep(1);bzero(buf,sizeof(buf));recv(sfd,buf,sizeof(buf),0);if(strcmp(buf,"quit")==0){break;}printf("%s\n",buf);}exit(EXIT_SUCCESS);}else if(pid>0){while(1){printf("====================欢迎使用====================\n");printf("1登录\t2注册\t0退出\n");printf("请输入命令\n");int cmd;scanf("%d",&cmd);getchar();switch(cmd){case 1:{login(sfd);break;}case 2:{registe(sfd);break;}case 0:{kill(pid,SIGKILL);char buf[111]="";short *type_point=(short *)buf;*type_point=htons(4002);send(sfd,buf,sizeof(buf),0);close(sfd);wait(NULL);return 0;}default:{printf("输入有误\n");}}printf("请输入任意键清屏\n");while(getchar()!='\n');//system("clear");}}return 0;
}

http://www.yayakq.cn/news/938993/

相关文章:

  • 天津做再生资源交易的网站企业管理咨询有限公司是干嘛的
  • wordpress做的网站吗python基础教程文档
  • 电脑网站 源码企业做网站的费用如果做账
  • 做电子商务网站建设工资多少软文推广
  • 图片网站模版中国建筑人才网app下载
  • 网站开发总结800字甜品店网站建设的目的
  • 网站建设盈利模式织梦网站多少钱
  • 电力网站建设方案安徽观元建设有限公司网站
  • 新氧整形网站开发模版小型企业类网站开发公司
  • 简书网站开发劳务派遣和外包一样吗
  • 义乌网站建站自己怎么做百度网站
  • 网站qq联系代码自己做网站好还是购买网站好
  • 阿里 网站备案核验单视频服务器
  • wordpress 英文 企业网站模板电商运营入门基础知识
  • 网站公司企业网站池州市建设厅官方网站
  • 网站开发技术是什么深圳福田做网站公司哪家好
  • 电子商务网站设计是什么做电子杂志的网站
  • 南宁高端网站建设西安做网站朋朋网络
  • 网站服务器是干什么的安卓市场下载官网
  • 青岛网站设计定制金华市建设技工学校教育培训网站
  • 黄石网站建设(乐云践新)中化山东公路建设集团网站
  • 在线营销型网站制作关键字优化软件
  • 宣传部总结网站建设网站建设的竞争力
  • 如何卸载和安装wordpress惠州做网站 百度优化
  • 北京 建网站iis做外网站点
  • 兰州专业做网站沈阳网络推广建站
  • 购买一个网站多少钱怎样用前端知识制作企业网站
  • 如何建立公司网站推广虚拟主机怎么上传网站
  • 教育网站安全建设方案网站备案怎么注销
  • 怎么上传软件到网站网站建设云尚网络