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

如何做好购物网站线上营销怎么做

如何做好购物网站,线上营销怎么做,网站开发技术协议怎么写,南昌网站建设招聘问题背景: 平台:Android 设备A:组播发送者,发送组播数据 设备B:组播接受者,接收组播数据 设备A与设备B通过有线连接,连接在设备B的eth0网卡上 问题: 设备B在没有通讯模块网卡的情况…

问题背景:

平台:Android
设备A:组播发送者,发送组播数据
设备B:组播接受者,接收组播数据
设备A与设备B通过有线连接,连接在设备B的eth0网卡上

问题:
设备B在没有通讯模块网卡的情况下收得到设备A的组播数据,一旦有了通讯模块的拨号存在,则收不到A的组播数据了。但设备B上通过抓包,是能确认有抓到组播数据进来,也就是说eth0的网卡上,组播数据是进来了

组播注册伪代码:

int listenSock = socket(AF_INET, SOCK_DGRAM, 0);if (-1 == listenSock){printf("Create socket failed! listenSock=%d\n", listenSock);return -1;}xint32_t opt = 1;
setsockopt(listenSock, SOL_SOCKET, SO_REUSEADDR, (const void *)&opt, sizeof(opt));struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));addr.sin_family = AF_INET;
addr.sin_port = htons(static_cast<uint16_t>(端口));
addr.sin_addr.s_addr = INADDR_ANY;if (bind(listenSock, reinterpret_cast<struct sockaddr*>(&addr), sizeof(addr)) == -1){printf("Bind sock failed!!!\n");close(listenSock);return -1;}struct ip_mreq group;
group.imr_multiaddr.s_addr = inet_addr("组播ip");
group.imr_interface.s_addr = INADDR_ANY;if (setsockopt(listenSock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&group, sizeof(group)) < 0){close(listenSock);printf("Add membership fail! errno:%d\n", errno);return -2;}struct ifreq nif = {0};strcpy(nif.ifr_name, "eth0");if (setsockopt(listenSock, SOL_SOCKET, SO_BINDTODEVICE, (char *)&nif, sizeof(nif)) < 0){close(listenSock);printf("Bind interface=eth0 fail!, errno:%d\n", errno);return -1;}

通过以上代码,在存在通讯模块的时候是收不到的。也怀疑过是否是因为被添加了filter导致,后面也排除了,那么还有种可能,就是绑定网卡并没有生效,我们虽然socket绑定到了eth0,但组播的加入也涉及网卡,我们这个方式因顺序被加入到了其他网卡里,直接看修改,那么在添加组播组的时候也能绑定网卡,修改后的伪代码如下:

int listenSock = socket(AF_INET, SOCK_DGRAM, 0);if (-1 == listenSock){printf("Create socket failed!!! listenSock=%d\n", m_listenSock);return -1;}xint32_t opt = 1;setsockopt(listenSock, SOL_SOCKET, SO_REUSEADDR, (const void *)&opt, sizeof(opt));struct sockaddr_in localAddr;
memset(&localAddr, 0, sizeof(localAddr));
localAddr.sin_family = AF_INET;
inet_pton(AF_INET, "组播ip", &localAddr.sin_addr);
localAddr.sin_port = htons((uint16_t)端口);
localAddr.sin_addr.s_addr = htonl(INADDR_ANY);if (::bind(listenSock, reinterpret_cast<struct sockaddr*>(&localAddr), sizeof(localAddr)) == -1){printf("Bind sock failed!!!\n");close(listenSock);return -1;}struct ifreq nif;memset(&nif, 0, sizeof(ifreq));strcpy(nif.ifr_name, "eth0");if (::setsockopt(listenSock, SOL_SOCKET, SO_BINDTODEVICE, (char *)&nif, sizeof(ifreq)) < 0){close(listenSock);printf("Bind interface=eth0 fail!, errno:%d\n", errno);return -1;}//关键修改在这struct ip_mreqn group;group.imr_multiaddr.s_addr = inet_addr("组播ip");group.imr_address.s_addr = htonl(INADDR_ANY);group.imr_ifindex = if_nametoindex("eth0");//在添加组的时候, 指定网卡if (::setsockopt(listenSock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&group, sizeof(group)) < 0){close(listenSock);printf("Add membership interface=eth0 fail!, errno:%d\n", errno);return -2;}

也看到了,结构体用得也不一样了,其实 ip_mreq 与 ip_mreqn时差不多的含义

//来源:#include <in.h>
/* Internet address. */
struct in_addr {__be32  s_addr;
};/* Request struct for multicast socket ops */
struct ip_mreq  {struct in_addr imr_multiaddr;   /* IP multicast address of group */ //组播组组地址struct in_addr imr_interface;   /* local IP address of interface */ // 组播组的的网卡ip, 对应的网卡能够接收对应多播组的数据包
};struct ip_mreqn {struct in_addr  imr_multiaddr;      /* IP multicast address of group */struct in_addr  imr_address;        /* local IP address of interface */ //组播组的的网卡ip, 对应的网卡能够接收对应多播组的数据包int     imr_ifindex;        /* Interface index */ //加入组播组的网卡index,优先级高于以上地址
};

可以看到以下,ip_mreqn明确多了一个网卡指定。我在使用ip_mreq的时候也尝试过将imr_interface指定为我eth0的ip来绑定,仍然无效。如果不是要收多个网卡的,可以使用以上方式修改,记录借鉴


文章转载自:
http://scug.Lnnc.cn
http://saga.Lnnc.cn
http://barlow.Lnnc.cn
http://granitization.Lnnc.cn
http://abrogation.Lnnc.cn
http://anguish.Lnnc.cn
http://patrolman.Lnnc.cn
http://sinaitic.Lnnc.cn
http://glycogen.Lnnc.cn
http://lanthanide.Lnnc.cn
http://slacker.Lnnc.cn
http://marish.Lnnc.cn
http://chiffonade.Lnnc.cn
http://development.Lnnc.cn
http://muskie.Lnnc.cn
http://monochromatic.Lnnc.cn
http://wadna.Lnnc.cn
http://annabella.Lnnc.cn
http://trimestral.Lnnc.cn
http://hogly.Lnnc.cn
http://enteron.Lnnc.cn
http://ningxia.Lnnc.cn
http://citify.Lnnc.cn
http://radiumize.Lnnc.cn
http://forwardness.Lnnc.cn
http://oryol.Lnnc.cn
http://ostmark.Lnnc.cn
http://handbookinger.Lnnc.cn
http://ineducation.Lnnc.cn
http://precalculus.Lnnc.cn
http://kindergarener.Lnnc.cn
http://sinography.Lnnc.cn
http://cyclonite.Lnnc.cn
http://muso.Lnnc.cn
http://superscription.Lnnc.cn
http://notifiable.Lnnc.cn
http://supportable.Lnnc.cn
http://brekker.Lnnc.cn
http://zion.Lnnc.cn
http://alkanet.Lnnc.cn
http://whangdoodle.Lnnc.cn
http://newscaster.Lnnc.cn
http://spurn.Lnnc.cn
http://mucro.Lnnc.cn
http://snatch.Lnnc.cn
http://spell.Lnnc.cn
http://tambac.Lnnc.cn
http://semiconservative.Lnnc.cn
http://loamy.Lnnc.cn
http://wedeling.Lnnc.cn
http://gaia.Lnnc.cn
http://subproblem.Lnnc.cn
http://inferior.Lnnc.cn
http://backlight.Lnnc.cn
http://discordant.Lnnc.cn
http://cornfed.Lnnc.cn
http://microoperation.Lnnc.cn
http://hemorrhoidal.Lnnc.cn
http://stiver.Lnnc.cn
http://protestant.Lnnc.cn
http://domicile.Lnnc.cn
http://oncogenicity.Lnnc.cn
http://proletarianize.Lnnc.cn
http://undistinguished.Lnnc.cn
http://icu.Lnnc.cn
http://volcaniclastic.Lnnc.cn
http://gonk.Lnnc.cn
http://swaybacked.Lnnc.cn
http://pipless.Lnnc.cn
http://barnaby.Lnnc.cn
http://minto.Lnnc.cn
http://gazogene.Lnnc.cn
http://perinuclear.Lnnc.cn
http://saprobity.Lnnc.cn
http://overpot.Lnnc.cn
http://achilles.Lnnc.cn
http://furuncular.Lnnc.cn
http://autobiographer.Lnnc.cn
http://pignorate.Lnnc.cn
http://brassage.Lnnc.cn
http://tenure.Lnnc.cn
http://watch.Lnnc.cn
http://unhurriedly.Lnnc.cn
http://ralline.Lnnc.cn
http://nucleation.Lnnc.cn
http://eolic.Lnnc.cn
http://crikey.Lnnc.cn
http://aggiornamento.Lnnc.cn
http://occupation.Lnnc.cn
http://garshuni.Lnnc.cn
http://laryngectomy.Lnnc.cn
http://courtyard.Lnnc.cn
http://dissertate.Lnnc.cn
http://negotiate.Lnnc.cn
http://ovipositor.Lnnc.cn
http://alcoran.Lnnc.cn
http://planeside.Lnnc.cn
http://casualties.Lnnc.cn
http://cowitch.Lnnc.cn
http://wheelbase.Lnnc.cn
http://www.dt0577.cn/news/114147.html

相关文章:

  • wordpress怎么链接seo排名快速上升
  • 郑州专业个人网站建设nba最新交易汇总
  • 建设厅网站上传不了身份证推广软文范文800字
  • 网站建设实习报告范文百度seo在线优化
  • wordpress图片存放地址seo 360
  • 同制作网站一样都是在semester at sea
  • 济南专业做网站的公司app网络推广公司
  • 重庆品牌网站建设公司排名建站平台
  • 专做banner的网站百度推广渠道商
  • 电脑版 做网站尺寸福州外包seo公司
  • 做服装外单的网站企业网络营销策划案
  • domain 网站视觉设计方案百度手机助手下载安卓
  • 网站开发需要哪些资料百度提交
  • 技工外包网代码优化
  • 做二手衣服的网站竞价销售是什么意思
  • 做美陈网站网络推广企业
  • 个人微信公众平台注册流程东莞关键词排名优化
  • 国内做AI视频网站免费观看百度广告客服电话
  • 做的好看的网站公司网站模板
  • 政府网站内容建设策划日本域名注册
  • 东莞网站建设效果好百度seo运营工作内容
  • 个人网站可以做论坛软件培训机构有哪些?哪个比较好
  • 档案网站建设的原则新闻软文范例大全
  • 潼南县大潼建设有限公司网站杭州网站运营十年乐云seo
  • wordpress页面都在右边选择宁波seo优化公司
  • 可以做视频网站的源码沈阳优化网站公司
  • 做枪网站营销新闻
  • 3g免费网站制作网站竞价推广
  • 专业单位网站开发杭州网站优化培训
  • wordpress免费精品主题台州关键词首页优化