ccs中ndk不能接收数据包调试过程

这几天在移植intel的upnp库到dps/bios上,在upnp协议开始需要通过发送udp的M-SEARCH去搜索支持upnp协议的网络设备,建立了udp的socket,并通过sendto将M-SEARCH包发送出去之后发现总是无法收到网络设备的回复的200 OK,当然网络上是存在upnp设备的,通过etherpeek抓包发现,网络设备已经回复了200 OK的数据包,但是NDK却无法接收,并回复了ICMP 端口不可达的错误,一般ICMP端口不可达的错误出现在该端口不存在服务程序的时候,但是我是刚通过该端口发送了数据,而且立刻用该socket接收数据,怎么会出现ICMP端口不可达呢,分析代码发现在建立该socket的时候,没有用bind函数显式绑定ip地址和端口,虽然在调用sendto的时候,sendto函数也会绑定ip地址和端口,是不是在退出sendto函数后,绑定失效了呢,随后我在建立socket的时候显式调用bind函数绑定了ip地址和端口,运行测试发现就能接收数据了,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值