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

凡科网的网站建设怎么做seo优化官网

凡科网的网站建设怎么做,seo优化官网,h5微场景制作软件,wordpress农业站模板1.广播 发送端&#xff08;类似于客户端&#xff09; 流程&#xff1a; 创建套接字 填充接收端&#xff08;服务器&#xff09;网络信息结构体 bind(非必须绑定) 设置允许广播 向接收端&#xff08;服务器&#xff09;发送数据 关闭套接字文件 #include <stdio.h> #in…

1.广播

发送端(类似于客户端)

流程:
创建套接字
填充接收端(服务器)网络信息结构体
bind(非必须绑定)
设置允许广播
向接收端(服务器)发送数据
关闭套接字文件

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>#define ERR_MSG(msg) do{\fprintf(stderr,"LINE:__%d__",__LINE__);\perror(msg);\
}while(0)#define PORT 3333
#define IP "172.17,94.255"int main(int argc, const char *argv[])
{int fd = socket(AF_INET,SOCK_DGRAM,0);if(-1 == fd){ERR_MSG("socket");return -1;}//填充接受端的网络信息结构体struct sockaddr_in recvaddr;recvaddr.sin_family = AF_INET;recvaddr.sin_port   = htons(PORT);recvaddr.sin_addr.s_addr = inet_addr(IP);//bind可绑可不绑//设置允许广播int broad = 1;if(-1 == setsockopt(fd,SOL_SOCKET,SO_BROADCAST,\&broad,sizeof(broad))){ERR_MSG("setsockopt");return -1;}printf("broad set success broad = %d\n",broad);char buf[128] = "";ssize_t res = 0;while(1){//向服务器发送数据bzero(buf,sizeof(buf));fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1] = 0;if(-1 == sendto(fd,buf,sizeof(buf),0,\(struct sockaddr*)&recvaddr,sizeof(recvaddr))){ERR_MSG("sendto");return -1;}printf("sendto success\n");}//关闭套接字close(fd);return 0;
}

接收端(类似于服务器)

流程:
创建套接字
填充接收端(本身)(服务器)的网络信息结构体
bind(必须) 绑定套接字和自身的网络信息结构体
新建一个网络信息结构体,用来存储发送端的地址信息
接受发送端发来的数据
关闭套接字

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>#define ERR_MSG(msg) do{\fprintf(stderr,"LINE:__%d__",__LINE__);\perror(msg);\
}while(0)#define PORT 3333
#define IP "172.17,94.255"int main(int argc, const char *argv[])
{int fd = socket(AF_INET,SOCK_DGRAM,0);if(-1 == fd){ERR_MSG("socket");return -1;}//填充接受端的网络信息结构体struct sockaddr_in recvaddr;int len = sizeof(recvaddr);recvaddr.sin_family = AF_INET;recvaddr.sin_port   = htons(PORT);recvaddr.sin_addr.s_addr = inet_addr(IP);//必须绑定if(-1 == bind(fd,(struct sockaddr*)&recvaddr,len)){ERR_MSG("bind");return -1;}printf("bind success\n");//新建一个网络信息结构体,用来存储接受的数据从哪来struct sockaddr_in sendaddr;int sendlen = sizeof(sendaddr);char buf[128] = "";ssize_t res = 0;while(1){//接受发送端(客户端)发来的数据bzero(buf,sizeof(buf));if(-1 == recvfrom(fd,buf,sizeof(buf),0,\(struct sockaddr*)&sendaddr,&sendlen)){ERR_MSG("recvfrom");return -1;}printf("recvfrom success\n");printf("[%s:%d] msg:%s\n",inet_ntoa(sendaddr.sin_addr),\ntohs(sendaddr.sin_port),buf);}//关闭套接字close(fd);return 0;
}

广播

发送端(类似于客户端)

流程:
创建套接字
填充接收端(服务器)的网络信息结构体 (IP为广播组的IP地址)
bind(非必须)
设置允许广播
发送广播信息
关闭套接字

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>#define ERR_MSG(msg) do{\fprintf(stderr,"LINE:__%d__",__LINE__);\perror(msg);\
}while(0)#define PORT 3333
#define IP "224.1.2.3"int main(int argc, const char *argv[])
{int fd = socket(AF_INET,SOCK_DGRAM,0);if(-1 == fd){ERR_MSG("socket");return -1;}//填充接受端的网络信息结构体struct sockaddr_in recvaddr;recvaddr.sin_family = AF_INET;recvaddr.sin_port   = htons(PORT);recvaddr.sin_addr.s_addr = inet_addr(IP);//bind可绑可不绑//设置允许广播int broad = 1;if(-1 == setsockopt(fd,SOL_SOCKET,SO_BROADCAST,\&broad,sizeof(broad))){ERR_MSG("setsockopt");return -1;}printf("broad set success broad = %d\n",broad);char buf[128] = "";ssize_t res = 0;while(1){//向服务器发送数据bzero(buf,sizeof(buf));fgets(buf,sizeof(buf),stdin);buf[strlen(buf)-1] = 0;if(-1 == sendto(fd,buf,sizeof(buf),0,\(struct sockaddr*)&recvaddr,sizeof(recvaddr))){ERR_MSG("sendto");return -1;}printf("sendto success\n");}//关闭套接字close(fd);return 0;
}

接收端(类似于服务器)

流程:
创建套接字
填充接收端(自身、服务器)的网络信息结构体(广播组IP…)
bind(必须绑定)绑定服务器与套接字
填充广播组的网络信息结构体(广播组IP,本地IP,网卡编号)
滴滴:查询网卡编号:ifconfig 查看使用的是哪个网卡,再 ip ad 查看对应的编号
添加广播组
新建一个网络信息结构体用来存储发送端的地址信息
循环接受信息
关闭套接字

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>#define ERR_MSG(msg) do{\fprintf(stderr,"LINE:__%d__",__LINE__);\perror(msg);\
}while(0)#define PORT 3333
#define IP "224.1.2.3"int main(int argc, const char *argv[])
{int fd = socket(AF_INET,SOCK_DGRAM,0);if(-1 == fd){ERR_MSG("socket");return -1;}//填充接受端的网络信息结构体struct sockaddr_in recvaddr;int len = sizeof(recvaddr);recvaddr.sin_family = AF_INET;recvaddr.sin_port   = htons(PORT);recvaddr.sin_addr.s_addr = inet_addr(IP);//必须绑定if(-1 == bind(fd,(struct sockaddr*)&recvaddr,len)){ERR_MSG("bind");return -1;}printf("bind success\n");//加入多播组struct ip_mreqn mq;mq.imr_multiaddr.s_addr = inet_addr(IP);//多播组的组ipmq.imr_address.s_addr  = inet_addr("172.17.94.145");//本地IPmq.imr_ifindex   = 3;//网络设备编号,指定网卡号if(-1 == setsockopt(fd,IPPROTO_IP,IP_ADD_MEMBERSHIP,\&mq,sizeof(mq))){ERR_MSG("setsockopt");return -1;}printf("membership set succes ");//新建一个网络信息结构体,用来存储接受的数据从哪来struct sockaddr_in sendaddr;int sendlen = sizeof(sendaddr);char buf[128] = "";ssize_t res = 0;while(1){//接受发送端(客户端)发来的数据bzero(buf,sizeof(buf));res = recvfrom(fd,buf,sizeof(buf),0,\(struct sockaddr*)&sendaddr,&sendlen);if(-1 == res){ERR_MSG("recvfrom");return -1;}else if(0 == res){printf("发送端退出\n");break;}printf("recvfrom success\n");printf("[%s:%d] msg:%s\n",inet_ntoa(sendaddr.sin_addr),\ntohs(sendaddr.sin_port),buf);}//关闭套接字close(fd);return 0;
}

结果:
在这里插入图片描述

http://www.dt0577.cn/news/33105.html

相关文章:

  • 有哪些免费做网站石家庄头条今日头条新闻
  • php做的网站有品牌营销策略有哪些
  • 太原网站建设哪家便宜无代码免费web开发平台
  • 南川网站建设百度pc端提升排名
  • 学校网站手机站的建设方案有域名有服务器怎么做网站
  • 做网站怎么建立文件夹深圳网络推广seo软件
  • 课程设计代做网站php百度网站打不开
  • 技术支持 祥云平台 英文网站广告推广平台网站
  • 教你如何做网站今天最新的新闻头条新闻
  • 那些网站可以做兼职西安网站设计公司
  • 做网站运营工资是不是很低网上营销网站
  • 莱芜网站推广珠海百度seo
  • 做的比较唯美的网站有哪些竞价网官网
  • 购买淘宝店铺在哪个平台seo基础知识考试
  • 汉口网站建设 优帮云ping站长工具
  • 顺德网站建设公司信息东莞网络推广公司
  • 如何再网站上做免费广告词免费做网站怎么做网站链接
  • 秦皇岛专业做网站企业邮箱账号
  • 建设一个网站需要条件电子商务主要学什么
  • 南城网站建设公司方案百度搜索引擎入口
  • 但是打不开网页网站排名seo培训
  • aspnet东莞网站建设多少钱推广什么app佣金高
  • 网上有做口译的网站么怎么推广自己的产品
  • 平面设计素材网站推荐百度怎么免费推广
  • 黄岛因特网站建设公司北京突发重大消息
  • 电子科技公司网站网课培训机构排名前十
  • 深圳专业做网站服务怎么做网页
  • 清溪做网站北京百度推广开户
  • 大大大大大大大dj搜索引擎优化的基础是什么
  • 北京低价做网站登录百度