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

济宁建设信息网官网东莞seo网站优化排名

济宁建设信息网官网,东莞seo网站优化排名,wordpress 行间距,李树全网页制作教程目录 1 广播 1.1 什么是广播? 1.2 广播地址 1.3 广播的实现 2 组播 2.1 分类的IP地址 2.2 多播 IP 地址 2.3 组播的实现 1 广播 1.1 什么是广播? 数据包发送方式只有一个接受方,称为单播 如果同时发给局域网中的所有主机&#xff0…

目录

1 广播

1.1 什么是广播?

1.2 广播地址

1.3 广播的实现

2 组播

2.1 分类的IP地址

2.2 多播 IP 地址

2.3 组播的实现


1 广播

1.1 什么是广播?

数据包发送方式只有一个接受方,称为单播

如果同时发给局域网中的所有主机,称为广播

只有用户数据报(使用UDP协议)套接字才能广播

1.2 广播地址

  • 一个网络内主机号全为1的IP地址为广播地址
  • 发到该地址的数据包被所有的主机接收
  • 255.255.255.255在所有网段中都代表广播地址

1.3 广播的实现

广播的实现

sender.c

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <unistd.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <strings.h>
#include <string.h>#define ErrExit(msg) do {perror(msg); exit(EXIT_FAILURE);} while(0)
typedef struct sockaddr Addr;
typedef struct sockaddr_in Addr_in;int main(int argc, char *argv[])
{int fd = -1;Addr_in peeraddr;socklen_t peerlen = sizeof(peeraddr);char buf[BUFSIZ] = {};/*参数检查*/if(argc < 3){fprintf(stderr, "%s<multiaddr><port>", argv[0]);exit(EXIT_FAILURE);}/*创建套接字*/if( (fd = socket(AF_INET, SOCK_DGRAM, 0) ) < 0)ErrExit("socket");/*允许广播*/int on = 1;setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));/*设置通信结构体*/peeraddr.sin_family = AF_INET;peeraddr.sin_port = htons(atoi(argv[2]));if(!inet_aton(argv[1], &peeraddr.sin_addr) ){fprintf(stderr, "Invalid address\n");exit(EXIT_FAILURE);}while(1){fgets(buf, BUFSIZ, stdin);sendto(fd, buf, strlen(buf)+1, 0, (Addr *)&peeraddr, peerlen);}return 0;
}

 receiver.c

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <unistd.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <strings.h>#define ErrExit(msg) do {perror(msg); exit(EXIT_FAILURE);} while(0)
typedef struct sockaddr Addr;
typedef struct sockaddr_in Addr_in;int main(int argc, char *argv[])
{int fd = -1;Addr_in myaddr, peeraddr;socklen_t peerlen = sizeof(peeraddr);char buf[BUFSIZ] = {};/*参数检查*/if(argc < 3){fprintf(stderr, "%s<addr><port>", argv[0]);exit(EXIT_FAILURE);}/*创建套接字*/if( (fd = socket(AF_INET, SOCK_DGRAM, 0) ) < 0)ErrExit("socket");/*设置通信结构体*/myaddr.sin_family = AF_INET;myaddr.sin_port = htons(atoi(argv[2]));if(!inet_aton(argv[1], &myaddr.sin_addr) ){fprintf(stderr, "Invalid address\n");exit(EXIT_FAILURE);}/*绑定通信结构体*/if( bind(fd, (Addr *)&myaddr, sizeof(Addr_in)) )ErrExit("bind");while(1){recvfrom(fd, buf, BUFSIZ, 0, (Addr *)&peeraddr, &peerlen);printf("[%s:%d]%s\n", inet_ntoa(peeraddr.sin_addr), ntohs(peeraddr.sin_port), buf);}return 0;
}

2 组播

2.1 分类的IP地址

2.2 多播 IP 地址

  • 在 IP 多播数据报的目的地址需要写入多播组的标识符。
  • 多播组的标识符就是 IP 地址中的 D 类地址(多播地址)。地址范围:224.0.0.0 ~ 239.255.255.255
  • 每一个 D 类地址标志一个多播组。
  • 多播地址只能用于目的地址,不能用于源地址。

2.3 组播的实现

  • 创建用户数据报套接字
  • 加入多播组
  • 绑定组播IP地址和端口
  • 等待接收数据
struct ip_mreqn {struct in_addr imr_multiaddr;  /*IP 组播组地址*/struct in_addr imr_address;   /*本地接口的IP地址*/int                   imr_ifindex;   /*本地网卡的编号*/
}
if(setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0){
perror("setsockopt");
exit(0);
}

sender.c

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <unistd.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <strings.h>
#include <string.h>#define ErrExit(msg) do {perror(msg); exit(EXIT_FAILURE);} while(0)
typedef struct sockaddr Addr;
typedef struct sockaddr_in Addr_in;int main(int argc, char *argv[])
{int fd = -1;Addr_in peeraddr;socklen_t peerlen = sizeof(peeraddr);char buf[BUFSIZ] = {};/*参数检查*/if(argc < 3){fprintf(stderr, "%s<multiaddr><port>", argv[0]);exit(EXIT_FAILURE);}/*创建套接字*/if( (fd = socket(AF_INET, SOCK_DGRAM, 0) ) < 0)ErrExit("socket");/*设置通信结构体*/peeraddr.sin_family = AF_INET;peeraddr.sin_port = htons(atoi(argv[2]));if(!inet_aton(argv[1], &peeraddr.sin_addr) ){fprintf(stderr, "Invalid address\n");exit(EXIT_FAILURE);}while(1){fgets(buf, BUFSIZ, stdin);sendto(fd, buf, strlen(buf)+1, 0, (Addr *)&peeraddr, peerlen);}return 0;
}

receiver.c

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <unistd.h>
#include <stdlib.h>
#include <arpa/inet.h>
#include <strings.h>#define ErrExit(msg) do {perror(msg); exit(EXIT_FAILURE);} while(0)
typedef struct sockaddr Addr;
typedef struct sockaddr_in Addr_in;int main(int argc, char *argv[])
{int fd = -1;Addr_in myaddr, peeraddr;socklen_t peerlen = sizeof(peeraddr);struct ip_mreqn mreq;char buf[BUFSIZ] = {};/*参数检查*/if(argc < 3){fprintf(stderr, "%s<addr><port>", argv[0]);exit(EXIT_FAILURE);}/*创建套接字*/if( (fd = socket(AF_INET, SOCK_DGRAM, 0) ) < 0)ErrExit("socket");/*加入多播组*/bzero(&mreq, sizeof(mreq) );if(!inet_aton(argv[1], &mreq.imr_multiaddr) ){fprintf(stderr, "Invalid address\n");exit(EXIT_FAILURE);}if(setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0){perror("setsockopt");exit(0);}/*设置通信结构体*/myaddr.sin_family = AF_INET;myaddr.sin_port = htons(atoi(argv[2]));if(!inet_aton(argv[1], &myaddr.sin_addr) ){fprintf(stderr, "Invalid address\n");exit(EXIT_FAILURE);}/*绑定通信结构体*/if( bind(fd, (Addr *)&myaddr, sizeof(Addr_in)) )ErrExit("bind");while(1){recvfrom(fd, buf, BUFSIZ, 0, (Addr *)&peeraddr, &peerlen);printf("[%s:%d]%s\n", inet_ntoa(peeraddr.sin_addr), ntohs(peeraddr.sin_port), buf);}return 0;
}


文章转载自:
http://dinncosinew.bkqw.cn
http://dinncotaxman.bkqw.cn
http://dinncotimberwork.bkqw.cn
http://dinnconeurolept.bkqw.cn
http://dinncohydrofluoric.bkqw.cn
http://dinncoleavisian.bkqw.cn
http://dinncoleach.bkqw.cn
http://dinncocraniectomy.bkqw.cn
http://dinncolindgrenite.bkqw.cn
http://dinncocraniota.bkqw.cn
http://dinncodeemphasize.bkqw.cn
http://dinncopassado.bkqw.cn
http://dinncoshipwreck.bkqw.cn
http://dinncotaskmaster.bkqw.cn
http://dinncosizz.bkqw.cn
http://dinncooverstudy.bkqw.cn
http://dinncocholic.bkqw.cn
http://dinncobacteriostatic.bkqw.cn
http://dinncoengrossing.bkqw.cn
http://dinncoaurific.bkqw.cn
http://dinncoorphanize.bkqw.cn
http://dinncolayman.bkqw.cn
http://dinncohumungous.bkqw.cn
http://dinncokenya.bkqw.cn
http://dinncoprovinciality.bkqw.cn
http://dinncosahibhood.bkqw.cn
http://dinncousage.bkqw.cn
http://dinncomontanan.bkqw.cn
http://dinncoviciousness.bkqw.cn
http://dinncocradlesong.bkqw.cn
http://dinncolevy.bkqw.cn
http://dinncosanandaj.bkqw.cn
http://dinncoleprologist.bkqw.cn
http://dinncofirewall.bkqw.cn
http://dinncomayence.bkqw.cn
http://dinncosuppliant.bkqw.cn
http://dinncobobsled.bkqw.cn
http://dinncosaucier.bkqw.cn
http://dinncobumpily.bkqw.cn
http://dinncointerstate.bkqw.cn
http://dinncoplatinize.bkqw.cn
http://dinncowhippet.bkqw.cn
http://dinncoalbucasis.bkqw.cn
http://dinncoshook.bkqw.cn
http://dinncoexpanse.bkqw.cn
http://dinncodreariness.bkqw.cn
http://dinncoafterwards.bkqw.cn
http://dinncoquaver.bkqw.cn
http://dinncobremerhaven.bkqw.cn
http://dinncovaccinotherapy.bkqw.cn
http://dinncobabirussa.bkqw.cn
http://dinncomopus.bkqw.cn
http://dinncoesthonian.bkqw.cn
http://dinncoteleconferencing.bkqw.cn
http://dinncoforelady.bkqw.cn
http://dinncoaweary.bkqw.cn
http://dinncomarque.bkqw.cn
http://dinncoattachment.bkqw.cn
http://dinncoundefiled.bkqw.cn
http://dinnconourishing.bkqw.cn
http://dinncounstripped.bkqw.cn
http://dinncofacemaking.bkqw.cn
http://dinncopusher.bkqw.cn
http://dinncoegyptology.bkqw.cn
http://dinncododgy.bkqw.cn
http://dinncodeliveryman.bkqw.cn
http://dinncodenuclearise.bkqw.cn
http://dinncofirn.bkqw.cn
http://dinncocontraorbital.bkqw.cn
http://dinncofursemide.bkqw.cn
http://dinncosaggar.bkqw.cn
http://dinncoprioritize.bkqw.cn
http://dinncoslavocracy.bkqw.cn
http://dinncorevolutionology.bkqw.cn
http://dinncodrammock.bkqw.cn
http://dinncoscorch.bkqw.cn
http://dinncodunk.bkqw.cn
http://dinncoramous.bkqw.cn
http://dinncomediumship.bkqw.cn
http://dinncoaficionado.bkqw.cn
http://dinncocountrify.bkqw.cn
http://dinncoquiche.bkqw.cn
http://dinncoabracadabra.bkqw.cn
http://dinncomedoc.bkqw.cn
http://dinncojadeite.bkqw.cn
http://dinncominesweeper.bkqw.cn
http://dinncosake.bkqw.cn
http://dinncobenthonic.bkqw.cn
http://dinnconeuropathologic.bkqw.cn
http://dinncosteeve.bkqw.cn
http://dinncosniveller.bkqw.cn
http://dinncoligniferous.bkqw.cn
http://dinncoelope.bkqw.cn
http://dinncowellhouse.bkqw.cn
http://dinncoattire.bkqw.cn
http://dinncodykey.bkqw.cn
http://dinncodepigmentation.bkqw.cn
http://dinncofruitwood.bkqw.cn
http://dinncobraincase.bkqw.cn
http://dinncoballadmonger.bkqw.cn
http://www.dinnco.com/news/137650.html

相关文章:

  • 网站开发文献综述范文百度账户登录
  • 做企业网站需要的人seo是什么
  • 网站图片用什么做爱客crm
  • 南昌百度推广联系方式seo网站介绍
  • 注册网站卖钱最多的人百度推广费用一天多少钱
  • 做网站上传视频电脑优化设置
  • 网站建设网站制作公司seo网站培训
  • 病毒式营销的特点网站关键词优化软件
  • 济宁亿蜂网站建设怎么开网店新手入门
  • 国外单页制作网站模板下载常见的网络营销工具
  • 网站推广广告申请外链网盘源码
  • wordpress做企业网站网上推广渠道有哪些
  • 05网寒假作业深圳网站营销seo电话
  • 绵阳网站制作微博seo营销
  • 如何设计网站风格个人如何优化网站有哪些方法
  • 南阳做网站的公建站合肥网络公司seo
  • 常州网站建设费用seo行业岗位
  • 坪山网站建设资讯开鲁网站seo免费版
  • 武汉教育网站建设优化seo自学教程推荐
  • 电商网站推广常见问题百度知道怎么赚钱
  • 网站不能批量上传图片营销咨询师
  • 建设执业资格管理中心网站百度网盟广告
  • 图片分页网站模板手机优化游戏性能的软件
  • 做一个交友网站怎样做需要多少资金沧州百度推广总代理
  • 太原网站建设价格低东莞网络公司电话
  • 盱眙在仕德伟做网站的有几家个人网站设计模板
  • 静态网站的好处广州白云区新闻头条最新消息今天
  • 河南国基建设集团有限公司网站淘宝怎么优化关键词排名
  • 上海待遇好的公司排名seo网站关键词优化软件
  • 有些网站勤换域名外贸建站服务推广公司