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

云数据库可以做网站吗网络营销与直播电商专业就业前景

云数据库可以做网站吗,网络营销与直播电商专业就业前景,做喷绘可以在那个网站找,企业咨询内容有哪些文章目录 UDP编程流程UDP协议无连接的特点UDP协议数据报的特点 UDP编程流程 UDP 提供的是无连接、不可靠的、数据报服务。服务器端和客户端没有什么本质上的区别。编程流程如下: socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOC…

文章目录

  • UDP编程流程
    • UDP协议无连接的特点
    • UDP协议数据报的特点

UDP编程流程

UDP 提供的是无连接、不可靠的、数据报服务。服务器端和客户端没有什么本质上的区别。编程流程如下:

在这里插入图片描述

socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOCK_DGRAM。sendto()用来发送数据,由于 UDP 是无连接的,每次发送数据都需要指定对端的地址(IP 和端口)。recvfrom()接收数据,每次都需要传给该方法一个地址结构来存放发送端的地址。recvfrom()可以接收所有客户端发送给当前应用程序的数据,并不是只能接收某一个客户端的数据。

服务器端代码ser.c如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>int  main()
{   //1.创建套接字int sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){printf("创建失败");exit(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");//2.指定套接字的地址,绑定ip和端口int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));if(res==-1){printf("绑定失败");exit(1);}int len=sizeof(caddr);while(1){char buff[128]={0};//3.接收客户端的消息,谁发来数据就接收谁的数据,并没有和任何客户端建立连接recvfrom(sockfd,buff,127,0,(struct sockaddr*)&caddr,&len);//客户端的信息(ip和端口)存放到caddr,caddr指定数据的来源,中记录着是谁发的数据printf("buff(%d)=%s\n",ntohs(caddr.sin_port),buff);//4.向客户端回复数据sendto(sockfd,"ok",2,0,(struct sockaddr*)&caddr,sizeof(caddr));}
}

客户端代码cli.c如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>int main()
{//1.创建套接字int sockfd=socket(AF_INET,SOCK_DGRAM,0);if(sockfd==-1){printf("创建失败");exit(1);}struct sockaddr_in saddr;//服务器的地址,ip和端口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 len =sizeof(saddr);while(1){char buff[128]={0};printf("输入数据:");fgets(buff,128,stdin);if(strncmp(buff,"end",3)==0){break;}//2.向服务器端发送数据sendto(sockfd,buff,sizeof(buff),0,(struct sockaddr*)&saddr,sizeof(saddr));memset(buff,0,sizeof(buff));//3.接收服务器端回复的数据recvfrom(sockfd,buff,127,0,(struct sockaddr*)&saddr,&len);printf("buff=%s\n",buff);}//4.关闭套接字close(sockfd);}

运行结果:

在这里插入图片描述

从结果可以看出,当服务器端启动之后,可以同时启动多个客户端与客户端通信,但是两个客户端的端口号是不同的。

UDP协议无连接的特点

将服务器端关闭再重启后,客户端依旧可以与服务器端通信,如下图所示:

在这里插入图片描述
这是因为服务器端和客户端是没有建立连接的,当服务器端启动之后,收的到底是哪个客户端的消息我们并不知道,哪个客户端发消息,服务器端就收哪个客户端发来的消息。当服务器端关闭之后是不会像TCP编程那样有底层的协议去进行四次挥手通知客户端它要关闭的,客户端不会收到任何信息并且不知道服务器端是否关闭,所以当我们服务器端关闭之后再重新启动不会影响客户端向服务器端发送数据。同理,客户端关闭也不会给服务器端发送任何信息,客户端的关闭也不会影响服务器端。

如果服务器端关闭后,客户端向服务器端发送数据就会发生阻塞,阻塞在客户端的recvfrom这个地方,因为服务器没启动,端口没有人使用,那么数据就会被丢掉,所以没有服务器端给客户端回复数据,所以就会阻塞在recvfrom这个地方。如下图:

在这里插入图片描述

此时客户端代码cli.c执行完了sendto,接下来执行recvfrom的时候就被阻塞住了,因为没有服务器端给客户端回复消息,此时发送的aaaaaa发给本主机的6000端口,但是本主机的6000端口没有被占用,也就是6000端口没有被使用,所以所发送的数据aaaaaa就直接被丢掉了,所以也不会有服务器端给客户端回复消息,客户端就会在recvfrom这个地方阻塞住。

UDP协议数据报的特点

将服务器端代码ser.c中的recvfrom那一行的代码修改为如下情况,让服务器端一次只收一个字符:

recvfrom(sockfd,buff,1,0,(struct sockaddr*)&caddr,&len);

此时的运行结果:

在这里插入图片描述

出现这样的结果是因为,第一次客户端所发送的"hello",服务器端只收到了一个字符"h",剩下的"ello"被丢掉了,后续的结果也是一样,这是因为UDP协议是数据报服务,不像流式服务一样没有读完会继续读,每次recvfrom就拆一个包,拆一个包要保证把所有的数据都读走,不然剩余的数据就会被丢掉。所以在使用UDP协议的时候必须要保证一次把数据接收完。不用担心两个包合到一起导致收不完数据,因为每次调sendto的时候都要指定对方的地址,这个地址可以一样也可以不一样,所以两个sendto不可能合到一起,因为sendto的目的端可以不一样。不像TCP协议,send一下,再send一下,两次send的内容都会放到同一个缓冲区中,UDP协议是sendto直接打一个包过去,不会出现粘包的现象。数据报服务的特点如下图所示:

在这里插入图片描述

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

相关文章:

  • 琼海做网站北京网站制作网站
  • 网站建设网站制作哪家好广州海珠区租房子一般多少钱
  • 网站建设的系统分析官网网页制作
  • 怎么自己建立公司网站北京市市场监督管理局官网
  • 网站死链接扫描精选网页设计
  • 摄影师网站做原型的网站
  • 有哪个网站做策划方案的做教育网站有什么好处
  • 沈阳网页建站模板四年级的简短新闻播报
  • 途牛旅游网站建设背景简单网站制作成品
  • 自己做的网页怎么连接到网站福州做网站设计公司
  • wordpress网站管理员插件合肥网站建设公司哪家好
  • 让建站公司做网站需要什么seo技术中心
  • 购物网站的前台功能国内4大现货交易所
  • 建德网站制作公司厦门seo传播
  • 网站不备案有什么后果网站建设方案机构
  • 上海网站建设排名公司哪家好曙光建设有限公司网站
  • ps怎样做网站大图公司网站怎么免费建
  • 网站内部链接的策略多语言网站开发公司
  • seo网站建设及扩词淘宝网页设计招聘
  • 网站功能设计怎么写大连做网站哪家便宜
  • 玩客云做网站咸阳市建设工程信息网
  • 山东德州网站建设哪家最好wordpress 每页文章数量
  • 做网站空间哪家好seo学徒
  • 小米wifi设置网址入口网站淄博网站建设多少钱
  • php网站开发心得3500字如何出售自己的域名
  • 国内大型网站制作网站正在建设中 页面
  • 合肥网站建衡水网站公司
  • 丰台网站建设多少钱武昌网站建设制作
  • h5企业网站开发做洗化的网站
  • 西宁市城乡规划建设局网站wordpress花园网站