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

电子商务网站建设有哪些流程唐山网站从哪里找

电子商务网站建设有哪些流程,唐山网站从哪里找,做推广一般那些网站比较好,杰迅山西网站建设目录 1、tcp协议和udp协议 2、多线程并发和多进程并发: (1)多进程并发服务端 (2)多进程并发客户端: 3、tcp: 4、粘包 5、UDP协议编程流程 (1)服务器端: (2)客户端: 6、tcp状…

目录

1、tcp协议和udp协议

2、多线程并发和多进程并发:

(1)多进程并发服务端

(2)多进程并发客户端:

3、tcp:

4、粘包

5、UDP协议编程流程

(1)服务器端:

(2)客户端:

6、tcp状态:

7、tcp状态转移图:


1、tcp协议和udp协议

tcp协议:面向连接   可靠   流式服务

udp协议:无连接   不可靠   数据报

根据场景来决定使用什么协议

2、多线程并发和多进程并发:

多线程并发,如果线程出现失误可能导致整个进程失败,多进程互相不影响

(1)多进程并发服务端

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <arpa/inet.h>
#include<signal.h>int socket_init();
void do_run(int c)
{while(1){char buff[128]={0};int num=recv(c,buff,127,0);if(num<=0){break;}printf("child read:%s",buff);send(c,"ok",2,0);}
}
int main()
{signal(SIGCHLD,SIG_IGN);//处理僵死进程   一个是忽略信号,一个是wait();int sockfd=socket_init();if(sockfd==-1){printf("socket err\n");exit(1);}while(1){struct sockaddr_in caddr;int len=sizeof(caddr);int c=accept(sockfd,(struct sockaddr*)&caddr,&len);if(c<0){continue;}printf("c=%d\n",c);pid_t pid=fork();if(pid==-1){close(c);continue;}if(pid==0){close(sockfd);do_run(c);close(c);printf("child exit  pid=%s\n",getpid());exit(0);}close(c);}}
int socket_init()
{int sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd==-1){return -1;}struct sockaddr_in saddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.sin_port=htons(6000);saddr.sin_addr.s_addr=inet_addr("127.0.0.1");int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));if(res==-1){return -1;}res=listen(sockfd,5);if(res==-1){return -1;}return sockfd;}

(2)多进程并发客户端:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <arpa/inet.h>int main()
{int sockfd=socket(AF_INET,SOCK_STREAM,0);if(sockfd==-1){exit(1);}struct sockaddr_in saddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.sin_port=htons(6000);saddr.sin_addr.s_addr=inet_addr("127.0.0.1");int res=connect(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));if(res==-1){printf("connect err\n");exit(1);}while(1){char buff[128]={0};printf("input\n");fgets(buff,128,stdin);if(strncmp(buff,"end",3)==0){break;}send(sockfd,buff,strlen(buff),0);memset(buff,0,sizeof(buff));recv(sockfd,buff,127,0);printf("recv=%s\n",buff);}close(sockfd);}

父进程没有关闭链接,子进程close()不会完成四次挥手

3、tcp:

先建立连接TCP三次握手

最后断开,TCP四次挥手

tcp的可靠性是以牺牲了开销为代价的

4、粘包

多次发送的数据被一次性收到了,误以为是一次性收到的

解决办法:让接收的时候能区分出来,用不同的报文、在报文前面描述数据有多大、不连续send

5、UDP协议编程流程

(1)服务器端:

1、创建套接字socket()

2、指定IP和端口bind()

3、接受数据recvfrom()

4、发送数据sendto()

5、关闭close()

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <arpa/inet.h>
#include<signal.h>int main()
{int sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){return -1;}struct sockaddr_in saddr,caddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.sin_port=htons(6000);saddr.sin_addr.s_addr=inet_addr("127.0.0.1");int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));if(res==-1){printf("bind err\n");exit(1);}int len=sizeof(caddr);while(1){char buff[128]={0};recvfrom(sockfd,buff,127,0,(struct sockaddr*)&caddr,&len);printf("recv=%s\n",buff);sendto(sockfd,"ok",2,0,(struct sockaddr*)&caddr,sizeof(caddr));}}

(2)客户端:

1、创建套接字socket()

2、发送sendto()//需要指定对方的IP和端口

3、接收recvfrom()//需要指定对方的IP和端口

4、关闭close()

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include <arpa/inet.h>
#include<signal.h>int main()
{int sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){exit(1);}struct sockaddr_in saddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family=AF_INET;saddr.sin_port=htons(6000);saddr.sin_addr.s_addr=inet_addr("127.0.0.1");while(1){char buff[128]={0};printf("input\n");fgets(buff,128,stdin);if(strncmp(buff,"end",3)==0){break;}sendto(sockfd,buff,strlen(buff),0,(struct sockaddr*)&saddr,sizeof(saddr));memset(buff,0,128);int len=sizeof(saddr);recvfrom(sockfd,buff,127,0,(struct sockaddr*)&saddr,&len);printf("recv=%s\n",buff);}close(sockfd);
}

对于udp编程,因为是无连接的,所以可以多个客户端发送,客户端关闭,服务器端不回收到任何数据,服务器端关闭后,对于客户端无影响。

协议不同可以使用同一个端口

6、tcp状态:

只有在握手和挥手的时候回引起TCP协议的变化,稳定收发连接的时候状态时不会发生改变的。

7、tcp状态转移图:

三次握手完成有一个established状态,四次挥手完成有一个time_wait()状态

 

 

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

相关文章:

  • 建设网站制作公司关于百度网站的优缺点
  • 让家里的电脑做网站服务器jsp servlet 网站实例
  • 眉县住房和城市建设局网站网站规与网页设计
  • 网站刚做好怎么做优化公司网站打开显示建设中
  • 公司网站设计广州什么是网络营销?常见的网络营销方式有哪些?
  • 广州公司摇号申请网站做网站框架搭建的人
  • 江安网站建设庐江网站建设
  • 同ip怎么做不同的网站公司做网站需要服务器吗
  • 做 英语试题的网站企业网络营销为什么要选择外包?
  • 吉林企业网站模板建站哪个好呼市网页设计培训
  • 怎么样做网站才能适应手机屏幕自由策划企业网站管理系统破解版
  • 阿里巴巴外贸订单网站wordpress 列表多图
  • 中国著名的网站建设公司广州网站建设网站制作
  • 网站运营职业分析优质网站建设方案
  • 普通网站服务器国内国际时事最新消息
  • 电商网站开发视频台州行app官网下载
  • 桐乡市住房建设局网站公示小程序制作方案书
  • 制作公司网站备案需要提供什么资料域名代理商网站
  • 便捷网站建设费用电子商务网站建设与管理相关论文
  • 怎么自己做音乐网站沪尚茗居全包价格
  • 中为网站建设怀化买房网站
  • 长春站建筑官方网站查询叉车证
  • 自己网站做电子签章有效么上海平台网站建设
  • 汽车美容网站模板网站做中秋专题怎么弄
  • wordpress做的视听网站中国铁建门户网登录入口
  • 封装系统如何做自己的网站wordpress 修改布局
  • 做网站后租服务器一年多少钱深圳市龙华区大浪街道
  • 做图表好看的网站百度公司有哪些部门
  • 单页加盟网站模板织梦cms做网站流程
  • 微信网站开发工具h5免费制作平台火蚁