当前位置:  技术问答>linux和unix

嵌入式linux udp协议的socket发送数据问题

    来源: 互联网  发布时间:2017-04-06

    本文导语:  嵌入式linux,一个接收组播的客户端,加入组播 setsockopt(s,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char *)&mreq,sizeof(mreq)) 退出组播 setsockopt(s,IPPROTO_IP,IP_DROP_MEMBERSHIP,(char *)&mreq,sizeof(mreq)) 如何保证在调用这两个函数之后关闭socket(close...

嵌入式linux,一个接收组播的客户端,加入组播
setsockopt(s,IPPROTO_IP,IP_ADD_MEMBERSHIP,(char *)&mreq,sizeof(mreq))

退出组播
setsockopt(s,IPPROTO_IP,IP_DROP_MEMBERSHIP,(char *)&mreq,sizeof(mreq))

如何保证在调用这两个函数之后关闭socket(close(s))之前,socket的数据能够正常发送呢?


igmp_open(igmpaddr[i]);//初始化
igmp_join();//加入组播
igmp_leave();//退出组播
igmp_free();//关闭socket

如果按照这个顺序调用,中间不做什么操作,抓包看不到组播相关的数据(加入组播消息和退出组播消息)。
如果调用函数之间usleep 一小段时间,相关消息就能抓到。
我怀疑在执行setsockopt函数的时候数据并没有发送,而是在socket的缓冲区,结果没有来得及发送就关闭了socket,导致数据被丢弃了。
不过只是在leave和free函数之间调用usleep,同样是抓不到相关消息。这个比较奇怪。

嵌入式的开发板上测试,在ubuntu的pc上也做过测试,会有同样的问题。只是pc上usleep时间可以短一点。

请问:这个问题朝这方面考虑正确吗?如果正确,socket的发送数据该如何保证正常发送?
谢谢

|
使用shutdown函数吧。

|
看一下,man 7 socket手册里面的setsockopt的SO_LINGER选项;这个选项可以解决上面的问题;

    
 
 

您可能感兴趣的文章:

  • 请问在哪下载嵌入式Linux开发平台???想学嵌入式开发!!!
  • 有谁做过嵌入式 Linux开发?是否有嵌入式Linux的JVM?
  • 嵌入式网络编程与非嵌入式网络编程有什么不同
  • 问一个弱弱的问题:做嵌入式开发,宿主机的Linux版本一定要跟目标机上的嵌入式Linux版本一致么?
  • 我怎么糊涂了:想开发嵌入式系统(目标机采用UCLINUX嵌入式操作系统),在RED HAT LINUX下开发,选用什么工具呢?QT还是qt embedded?
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • 请问什么是嵌入式数据库?(空)
  • 关于“嵌入式Linux”
  • 嵌入式系统的学习
  • 嵌入式学习方法
  • 请问:构建一个嵌入式开发环境时的疑问?
  • linux 嵌入式开发用买开发板吗?
  • 求嵌入式Linux的入门书籍!
  • 嵌入式应用开发协作系统 Yocto
  • 嵌入式系统的C运行库 Newlib
  • 嵌入式GLIBC EGLIBC
  • 驱动程序开发和嵌入式开发有什么联系吗?
  • 嵌入式 syslog
  • vc++与Linux嵌入式
  • 计算机专业学习 嵌入式可以么 ??
  • 有什么软件可以通过网络把文件从windows发送到嵌入式机的linux
  • 设计一个嵌入式透明网关,从eth0接收到的数据发送到eth1,从eth0接收到的数据转发到eth1,用原始套接字做的,但是eth0接收到eth1的数据又发给了eth1,这样在两者之间形成循环,怎么办?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 现在LINUX主要用在哪些嵌入式设备上?
  • 嵌入式系统 Prex
  • web开发和嵌入式开发哪个更有挑战
  • 嵌入式linux 组播接收问题
  • Linux的嵌入式开发,请高手指点
  • 国内有哪些好的嵌入式公司???
  • 开源嵌入式操作系统 Contiki
  • 嵌入式Web服务器 Appweb
  • 实时嵌入式操作系统 NuttX
  • 嵌入式系统虾米意思呀?
  • Linux 用什么工具进行嵌入式开发。
  • 我想学习Linux 嵌入式开发,请大家指教
  • java 还是LINUX嵌入式???
  • 了解嵌入式开发的朋友请进!
  • 是考验还是嵌入式??
  • linux运维转linux嵌入式
  • 嵌入式GUI库 eSWT
  • 嵌入式系统考研请教?
  • ARM 嵌入式系统的仿真器 Softgun
  • 如何开发嵌入式Linux操作系统?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,