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

营销型网站建设必须的步骤包括wordpress 8小时前

营销型网站建设必须的步骤包括,wordpress 8小时前,宝安网站制作哪里好,外链论坛UDP输入 输入函数的目标是把UDP数据报放到合适的插口缓存内,然后唤醒该插口上因输入阻塞的所有进程或线程(唤醒需要依靠操作系统的IPC机制)。 分为三个步骤: 1.确认消息并简单处理输入的数据 2.处理目的地址是单播类型的数据报…

UDP输入

输入函数的目标是把UDP数据报放到合适的插口缓存内,然后唤醒该插口上因输入阻塞的所有进程或线程(唤醒需要依靠操作系统的IPC机制)。

分为三个步骤:

1.确认消息并简单处理输入的数据

2.处理目的地址是单播类型的数据报:提交给单个socket即可

3.处理目的地址是广播或多播类型的数据报:需要找到所有需要提交的socket

处理输入的代码如下:

代码主要是验证数据报长度,有两个参数:ip_len 与 uh_ulen,这两个参数都表示数据报长度,正常情况下,它们应该是相等的。

正常情况:

uh_ulen:UDP首部加UDP数据长度

ip_len:数据报内容长度

但我们都知道网络结构是分层的,下一层对上一层来说就是内容,所以有:

ip_len
UDP首部
UDP数据
IP首部
UDP首部
UDP数据

ip_len 大于 uh_ulen:代码相信小的那个,也就是uh_ulen,此时调用m_adj丢弃mbuf后面多出来的部分,在校验和检验时会丢弃该数据报。

ip_len 小于 uh_ulen:长度出现严重错误,数据报必须立即被丢弃。

后面就是填写字段并计算校验和,在前文讲过了,就不过多赘述了。

void udp_input(m, iphlen)register struct mbuf *m;int iphlen;
{register struct ip *ip;register struct udphdr *uh;register struct inpcb *inp;struct mbuf *opts = 0;int len;struct ip save_ip;udpstat.udps_ipackets++;//此时还没有实现备份IP选项,因此需要丢弃if (iphlen > sizeof (struct ip)) {ip_stripoptions(m, (struct mbuf *)0);iphlen = sizeof(struct ip);}//如果IP/UDP长度不合理,那么重新安排mbuf链,使第一个mbuf至少有28个字节ip = mtod(m, struct ip *);if (m->m_len < iphlen + sizeof(struct udphdr)) {if ((m = m_pullup(m, iphlen + sizeof(struct udphdr))) == 0) {udpstat.udps_hdrops++;//状态标志位,这些代码不影响理解return;}ip = mtod(m, struct ip *);}uh = (struct udphdr *)((caddr_t)ip + iphlen);/** Make mbuf data length reflect UDP length.* If not enough data to reflect UDP length, drop.*/len = ntohs((u_short)uh->uh_ulen);if (ip->ip_len != len) {if (len > ip->ip_len) {udpstat.udps_badlen++;goto bad;}m_adj(m, len - ip->ip_len);/* ip->ip_len = len; */}/** Save a copy of the IP header in case we want restore it* for sending an ICMP error message in response.*/save_ip = *ip;/** Checksum extended UDP header and data.*/if (udpcksum && uh->uh_sum) {((struct ipovly *)ip)->ih_next = 0;((struct ipovly *)ip)->ih_prev = 0;((struct ipovly *)ip)->ih_x1 = 0;((struct ipovly *)ip)->ih_len = uh->uh_ulen;if (uh->uh_sum = in_cksum(m, len + sizeof (struct ip))) {udpstat.udps_badsum++;m_freem(m);return;}}后面的程序依次是:分用多播和广播数据报分用单播数据报生成ICMP端口不可达差错
http://www.dtcms.com/a/447920.html

相关文章:

  • 泰州网站开发有了网站源码可以做网站吗
  • 中国建设银行网站签名通下载安装响应式个人网站psd
  • 网站做的好php做的知名网站
  • 企业门户网站建设特色青岛网站推广哪家效果好
  • 苏州开设网站公司在什么地方阿里云备案成功怎么建设网站
  • 做网站的调查问卷应用开发者
  • 自做淘宝客网站云采网采购平台
  • 如何成立一个房产网站做视频网站如何赚钱
  • 如何查询网站接入信息seo网站诊断价格
  • 制作网页的的网站网站建设 网页设计需要技能
  • h5制作网站 有哪些杭州做网站小芒
  • 网站 虚拟主机杭州住房和城市建设局网站
  • 题解:P10191 [USACO24FEB] Test Tubes S
  • 捕鱼游戏在哪做网站做网站一般有几个关键词
  • 合肥建设局网站领导设计个网站多少钱
  • 开发商城网站公司wordpress图片幻灯片
  • 帮企网站建设代运营网站建设起来还需要花钱吗
  • 做网站搞个物理服务器房屋自建设计哪个网站好
  • 代运营网站蚌埠做网站多少钱
  • 网站要实现的电商功能做网站能设置关键词在百度中搜索到
  • seo站长工具推广平台南宁网站定制公司
  • 南昌做网站的流程食品公司名字大全
  • 【模块学习】蓝牙模块
  • 上海建筑网站大全广西河池住房和城乡建设厅网站
  • 网站开发沟通南宁隆安网站建设
  • 乡镇门户网站建设wordpress文章字号
  • 做网站一个月能挣多少商业网站模板下载
  • 阿里云oss做网站百度自动点击器下载
  • 青岛开发区建网站哪家好网站开发的发展
  • 宠物狗网站建设分析网站开发心得