当前位置: 首页 > news >正文

如何使用raw socket发送UDP报文

前面写的一篇《Linux下如何在数据链路层接收原始数据包》举了一个实例,使用raw socket接收UDP数据报,但是发送一个数据包比接收要复杂一些,本文以一个实例说明如何使用raw socket发送一个UDP报文。

1. 前言

  • 阅读本文前可以考虑先阅读一下我的另外一篇文章《Linux下如何在数据链路层接收原始数据包》,那篇文章中已经介绍过的一些概念,本文中将不再赘述;下面仅罗列一些曾经在《Linux下如何在数据链路层接收原始数据包》介绍过的技术要点;
  • 发送数据时打开raw_socket
    sock_raw = socket(AF_PACKET, SOCK_RAW, IPPROTO_RAW);
    if (sock_raw == -1)printf("error in socket");
    
  • 以太网报头结构(定义在头文件linux/if_ether.h中)
    struct ethhdr {unsigned char  h_dest[ETH_ALEN];    /* destination eth addr  */unsigned char  h_source[ETH_ALEN];  /* source ether addr  */__be16         h_proto;             /* packet type ID field  */
    } __attribute__((packed));
    
  • IP报头结构(定义在头文件linux
http://www.lryc.cn/news/15143.html

相关文章:

  • 【C++】文件IO流
  • JavaScript高级程序设计读书分享之4章——4.2执行上下文与作用域
  • 函数的定义与声明
  • C#部署非安装版(绿色版)mysql
  • 【RecBole-GNN/源码】RecBole-GNN中lightGCN源码解析
  • 基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架common目录解析
  • c++提高篇——queque容器
  • MyBatis-XML映射文件详解
  • 基于Java+SpringBoot+Vue+Uniapp前后端分离健身预约系统设计与实现
  • webstom找不到vue全局组件
  • ESP32设备驱动-内置霍尔磁力传感器数据读取
  • 2023面试准备之--mysql
  • yolov5源码解读--训练策略
  • 基于Django的员工管理系统
  • 企业数智化转型在即,看看低代码软件公司如何做!
  • 如何将pdf版的文书文字提取出来?
  • 设计模式——工厂模式
  • PCB设计中降低噪声与电磁干扰的24个窍门
  • 设计模式浅谈
  • 【kubernetes】使用crictl对k8s节点进行调试
  • 数字经济讨论题
  • gcc/g++、动静态库、make/makefile
  • 北京博奥智源,浅谈图书馆的馆情展示系统细则
  • Docker----------day-mysql8主从复制
  • 【Nginx】【一】Nginx简介
  • 跳跃游戏II-力扣45-java 动态规划
  • 【算法】用python代码解决“鬼谷问徒”问题
  • 【1】linux命令每日分享——mkdir创建目录
  • TPM 2.0实例探索1
  • buu [BJDCTF2020]signin 1