linux下socket收IP数据包

【Linux4.1.12源码分析】AF_INET raw socket实现原理分析 在分析AF_PACKET raw socket实现时,我们从创建socket入手来分析, 本篇我们从收包流程入手来分析。在分析协议栈报文接收IP层分析时,我们知道IP层把报文交给raw sock的如后函数是raw_local_deliver。我们从这个函数来看看是如何把一个报文提交给raw socket的。 1、raw_local_deliver函数 int raw_local_deliver 阅读详情

static int init_socket()

{

  int   raw_sockfd_l2 = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP));

  struct sockaddr_ll sock_ip_pack;


    if (raw_sockfd_l2 < 0)
    {
        printf("%s:%d:%s create the l2 raw socket is fail",__FILE__,__LINE__,__func__);
        return ret;
    }

    sock_ip_pack.sll_family = AF_PACKET;
    sock_ip_pack.sll_ifindex = get_interface_index(raw_sockfd_l2, "eth0");
    sock_ip_pack.sll_protocol = htons(ETH_P_IP);

    if (bind(raw_sockfd_l2, (struct sockaddr *)(&sock_ip_pack), sizeof(sock_ip_pack)) < 0)
    {
        CWDebugLog("%s:%d:%s bind is fail",__FILE__,__LINE__,__func__);
 
linux raw socket raw socket即原始套接字,可以通过创建socket时,设置参数SOCK_RAW来创建。相比平时使用SOCK_STREAM创建的应用层的套接字,raw socket可以直接处理ip首部和tcp首部,并且可以监听抓取经过本机的ip数据包和mac帧,可以处理ICMP和IGMP等网络控制报文。通常有两种方式: //发送接收ip数据包 socket(PF_INET,SOCK_RAW,IPPROTO_T 阅读详情

相关推荐

跨平台(Windows+Linux)的Socket通讯程序(一)—底层封装

【摘要】编写Socket通讯程序是一个老话题。本文重点介绍Windows平台和Linux平台Socket通讯的不同,采用C++,编制了一个简单的跨平台的Socket通讯库。 一、Socket通讯的基础知识 Socket通讯是两个计算机之间最基本的通讯方法,有TCP和UDP两种协议。关于这两种协议的区别,不少文章已有详述,这里,稍微总结一下: 1.TCP是面向连接的,是“流”式的,意即通讯两端

guxch的专栏 3万+

【深度学习】基于BERT模型的情感分析(附实战完整代码+数据集)

情感分类是一个快速发展的研究领域,尽管众多模型和数据集在二分类任务中显示出很高的准确性,但细粒度的情感分类任务仍然是一个很大改进空间的领域。分析SST-5数据集,Munikar等人的先前工作表明,嵌入工具BERT允许使用简单的模型来实现最新的准确性。

aaaa_hsjsueu的博客 2万+

【硬件】通俗易懂的讲解晶体管(三极管和MOS管)的工作原理

晶体管是一个简单的元器件,可用于构建许多有趣的项目。在本文中,我将用通俗易懂的语言给您讲解晶体管的工作原理,以便您可以在电路设计中更好的使用静态管。一旦你学习这些基础知识,对以后的设计和使用来说,将会变得非常容易。我们将重点介绍两种最常见的晶体管:双极型晶体管(三极管)和MOSFET。晶体管的工作原理其实是类似于电子开关。它可以打开和关闭电路。一个简单的思考方法是将晶体管视为无源的继电器。晶体管类似于继电器,从某种意义上说,您可以使用它来打开和关闭某些东西。但晶体管也可以部分导通,一般在放大电路中使用,这部

1万+

AI辅助SCI论文大修:一键生成回复信+同步修改稿,效率提升300%

AI可以针对多位审稿人的意见进行逐点(point-by-point)回复,语言地道流畅,能够处理邮件格式、礼貌性回复和部分内容修正。最新的LLM:GPT-5, Claude 4.1都是带有agentic功能,能规划复杂任务,并调用工具执行复杂任务的大模型。有时候审稿人意思模棱两可,你的反复揣摩ta关注的点是什么,回复的不好,很有可能下一轮被reject。这个2.0升级版,除了在response中完美rebuttle,在文中对应部分的修改,也会帮你一并呈现,基本上就是可以直接拿来用的版本;

dinaxuejie的博客 1634

解决TexStudio编写LaTeX论文引用文献问题:正文引用处出现[?],参考文献也不显现

当我们利用LaTeX编写论文时,可能会出现引用参考文献时正文引用处出现?号,肯能的原因及解决方案如下: 问题一 忘记在\end{document}前面放\bibliographystyle{样式}和\bibliography{参考文献bib文件名}: \bibliographystyle{plain} \bibliography{sample} 其中, LaTeX 标准选项及其样式共有以下8种: plain,按字母的顺序排列,比较次序为作者、年度和标题. unsrt,样式同plain,只是按照引用的先后

左手の明天的博客 9490

支付域——账户系统设计

本文详细介绍了支付域中的账户系统设计,包括账户的定义、核心特征、常见类型以及在支付系统中的作用。账户是支付平台为用户、商户等主体建立的资金记录单元,具有资金归属、余额管理、交易流水、资金安全等核心特征。常见账户类型包括用户账户、商户账户、平台账户、保证金账户等。此外,还探讨了账户与银行账户的区别、账户的结构设计、如何设计账户类型以及账户系统设计等内容。

庄小焱 1145

PVE虚拟机运行不流畅,出现卡顿。

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 3026

LVGL 蜂巢气泡菜单(Hex Menu)

h。

摸鱼专家 104

Arcgis模型构建器01——写一个简单的模型

在使用模型构建器解决这个需求之前,我们要想清楚如果我们手动解决的话,应该如何去处理,因为构建模型的过程正是基于我们手动处理的过程来构建的。我有一个全国的dem影像数据和一个陕西省边界范围矢量,现在我想获取陕西省的dem影像的坡度数据。填写完之后点击确定,我们发现,两个输入数据和工具连接起来了,并且通过裁剪工具得到一个中间结果,即。我们发现工具框和中间数据框都存在阴影,说明已经运行过了这个模型,不报错就说明模型运行成功!现在我们就把数据和工具都串联起来了,成功构建好了模型。

爱吃雪糕的小布丁的博客 880

AVR Studio 4.18

AVR Studio 4.18

YOLO目标检测+SSDD遥感检测数据集已标注可以直接使用(1160张图像+对应已标注xml文件).rar

1、资源内容:YOLO目标检测+SSDD遥感检测数据集已标注可以直接使用(1160张图像+对应已标注xml文件).rar2、代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。3、适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。4、更多仿真源码和数据集下载列表(自行寻找自己需要的):https://blog.csdn.net/m0_62143653?type=download5、作者介绍:某大厂资深算法工程师,从事Matlab、Python、C/C++、Java、YOLO算法仿真工作10年;擅长计算机视觉、目标检测模型、智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、智能控制、路径规划、无人机等多种领域的算法仿真实验,欢迎交流学习。

基于STM32f103单片机 独立看门狗实验软件例程源代码.rar

基于STM32f103单片机 独立看门狗实验软件例程源代码.rar

Andon安灯系统c#.zip

KopSoft数据采集与监控,电子看板,Andon安灯系统

上一篇: linux 下多线程编程以及线程接口的使用
下一篇: linux 网络编程--原始套接字(下)
小饼仙子
博客等级 码龄18年 92粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值