linux双网卡socket不能互发,socket,多网卡,收不到包(multiple interface,multicast) | 程序员网...

背景

最近在做网络摄像头(IPC、IPCam)方面的集成开发工作。因为项目的需求,要对接不同厂商的网络摄像头、安防摄像头等产品。

其中会涉及到一个ONVIF协议,这是个Web Service协议,其中一个接口就是Web Service Discover,也就是发现和侦测网络中有哪些可用的网络服务。

简单点说,就是往网络里面发送一个广播或者组播信息,然后其它设备或者服务器收到之后就返回一个响应,把服务接口信息反馈回来。

一、问题和现象

但是在开发测试的时候发现一个问题,发出去的组播信息无法被设备接收到,设备发出来的组播信息也无法被接收到。但是用另外一个官方的设备检测工具,可以探测出网络设备。

二、原因分析因为别人家的软件能用,自己做的不能用。所以第一种想到的可能是,发送的信息不正确,导致摄像头拒绝返回信息。测试方法:本人用wireshark抓包,把能够正常探测服务和设备的那个软件发出去的所有信息都捕获出来,发现跟本人发送的内容一样的。

结论:发送的数据没问题

第二种可能,就是发送的探测信息没有发送到相应的设备和服务那里,对方收不到自然就不会返回信息了。测试方法:在自己的代码里面开两个线程,这两个线程同时加入到一个广播组里面。一个发送一个接收。

结论:线程A发送出去的信息,能被线程B接收,证明是有发出去的。

那就剩下一种可能了,就是信息已经在程序中发出去了,但是在网络中并没有传达到其它设备那里。因为别人家的设备可以发送,那就首先排除了是系统防火墙、杀毒软件、路由器、交换机等原因。问题应该是在本机上。

然后想到本机上有两个网卡࿱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值