用 setsockopt () 来绑定网口

Tom_殇子 Tom_殇子 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近做一个项目要用到双网卡 ppp0 , ppp1 都是用的无线拨的号。所以在代码中要能同时使用只得绑定网口了,很自然就要用到:
sockfd = socket(AF_INET, SOCK_STREAM, 0);(TCP)
int out = setsockopt(sockfd,SOL_SOCKET,SO_BINDTODEVICE,(char *)&if_ppp0,sizeof(if_ppp0));
if(out!=0)
{
error("setsockopt \n");
printf("*** bindif(%s) failed ! errno is %d,
%s\n",ppp0,errno,strerror(errno));
exit(1);
}
在这个网页可以找到使用的方法:
http://www.linuxidc.com/Linux/2011-02/32226.htm
可以看到我这里绑定的是ppp0 , 用的是TCP协议。
但是一个程序不可能只用到TCP 啊! 还得用到UDP , 所以我用同样的方法创建一个UDP的套接口,也一样的绑定了。
结果:编译的时候没有出错,但是在运行的时候在UDP套接口绑定的时候报错:
*** bindif(ppp0) failed ! errno is 19, No such device(就是上面的绑定失败后的内容)

所以我有个想法: 一个网口是不是只能用下个协议去绑定呢?比如说:ppp0用了TCP绑定了,就不能用UDP绑定了。也不知道我这个想法是不是对的…… 请老师们指点一下……


...全文

相关推荐

Linux套接字绑定到网络设备的方法简介

这个功能对于网络编程和网络管理非常有用,可以使我们的程序只监听特定网络接口上的数据包,或者将数据包发送到指定的网络接口上。一旦我们获取了网络设备列表,就可以选择特定的设备来绑定套接字了。在上面的代码中,我们首先创建了一个套接字,然后使用bind函数将其绑定到指定的IP地址和端口上。接下来,我们使用setsockopt函数来将套接字绑定到指定的设备上,通过指定SO_BINDTODEVICE选项和设备名称来实现绑定。通过上述的代码示例,我们学习了如何在Linux中使用C语言编程将套接字绑定到特定的网络设备上。

风华绝代的代码

基于STM32与W6100的IPv4/IPv6双栈回环服务器实现

嵌入式网络开发中,TCP/IP协议栈是实现设备联网的核心基础。传统软件协议栈如LwIP需要消耗大量MCU资源,而硬件协议栈芯片如W6100通过内置完整网络协议处理逻辑,将CPU从繁琐的协议解析中解放出来,显著提升系统效率与稳定性。这种硬件加速方案特别适合资源受限的嵌入式场景,为物联网设备提供可靠的网络连接能力。随着IPv4地址耗尽,IPv6成为物联网发展的必然趋势,双栈支持成为现代嵌入式设备的标配。本文通过一个具体的STM32F103VC与W6100硬件组合案例,详细解析如何利用硬件协议栈快速构建同时支持I

weixin_34267123

C语言socket编程:WiFi数据收发服务端实战

在嵌入式与物联网开发中,C语言常被用于网络数据收发,而实际工程并不直接操作无线网卡,而是通过操作系统提供的socket接口与内核协议栈交互。socket是网络通信的抽象层,屏蔽了有线与无线链路的差异,使程序可以透明地在WiFi局域网内传输数据。理解socket的工作原理,包括TCP/UDP协议选型、地址绑定、监听与收发流程,是构建稳定服务端的基础。其技术价值在于用简洁的代码实现跨设备通信,广泛应用于电脑与手机、嵌入式板卡间的指令交互、传感器数据上报、远程控制等场景。针对WiFi链路不稳定、动态IP、防火墙限

云海天狼

RT-Thread Studio下STM32F4+LAN8720以太网驱动与TCP服务器实战指南

在嵌入式系统开发中,以太网通信是实现设备联网与远程控制的核心技术。其原理基于TCP/IP协议栈,通过物理层(PHY)芯片与介质访问控制层(MAC)协同工作,完成数据帧的收发。这项技术的价值在于为资源受限的微控制器提供了稳定、标准的网络接入能力,是工业物联网、智能家居等场景中设备互联的基石。本文聚焦于STM32F4系列MCU与LAN8720 PHY芯片这一经典硬件组合,深入探讨在RT-Thread实时操作系统环境下,如何从零开始完成**驱动适配**与**协议栈配置**,解决时钟模式、引脚配置等关键问题,并最终

weixin_34054931

产教融合实训基地与实践中心建设逻辑图-可编辑版

产教融合实训基地与实践中心建设逻辑图-可编辑版

龙猫与奥特曼
评论 7
收藏 已收藏
分享
返回顶部
Tom_殇子
Linux/Unix社区 23,224 成员 74,535 内容