Linux 上使用 C/C++ 编写的简单原始套接字服务器

2024-04-01

我正在尝试使用原始套接字构建以太网。我无法使用 TCP/IP、UDP 或任何其他协议。

这是因为它将与非常简单的硬件进行通信,这些硬件没有资源来处理所有不同的协议层。 我的网络将由一台主机组成,通过以太网交换机与多个硬件进行通信。此时,我基本上只想向每个硬件发送简单的数据包,并建立一个可以扩展的简单服务器。我的系统运行的是Linux,服务器需要用C或C++编写。

我一直在尝试查找有关如何使用原始套接字的信息,但每个人总是说不要使用它们并且没有提供任何信息。我有很强的编程背景,但没有网络经验。 任何人都可以提供有关如何开始或在哪里可以找到相关教程的任何信息吗?


网上有各种教程,比较容易找到。对于您来说,一个好的起点是这样的教程:套接字教程 http://www.linuxhowtos.org/C_C++/socket.htm。它包括一个简单的 C 语言客户端/服务器示例(尽管该示例使用 TCP 协议)。

更多结果:

使用 C 在 Linux 上进行原始套接字编程 http://www.binarytides.com/raw-sockets-c-code-on-linux/

Linux 套接字第 17 部分高级 TCP/IP - 原始套接字程序示例 http://www.tenouk.com/Module43a.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 上使用 C/C++ 编写的简单原始套接字服务器 的相关文章

随机推荐

  • 在 DevExpress 中计算 ASPxGridview 列

    我有一个ASPxGridview 通常是 21 列 但我只想要处理 4 列 每列都有一个十进制值 MV EDDIE列为空 我想要的是 以编程方式计算 MV EDDIE列是RISK EUR IPOTEK MV BERND 只有在GroupSu
  • Spring 3.1 @Cacheable - 方法仍然执行

    我正在尝试按照解释实现 Spring 3 1 缓存here http www javacodegeeks com 2011 02 spring 31 cache abstraction tutorial html and here http
  • 带条件的 foreach 循环

    我可以用多个条件进行循环 如下所示 for int i 0 condition1 condition2 conditionN i 有没有办法使用 foreach 来做到这一点 foreach var i in arr and while c
  • 入口点不能用“async”修饰符标记

    我从下面复制了代码this http blogs msdn com b csharpfaq archive 2012 06 26 understanding a simple async program aspx链接 但是当我编译这段代码时
  • JQuery,分层表分页

    多次询问分层表和表分页 但我正在寻找他们两个 我已经在我的应用程序中使用 JQuery 因此使用相同的插件将会很有用 但我愿意接受任何建议 目前 我设法使用一些 jQuery 插件来显示分层数据 并添加了我自己的分页方法 但它还不够 我正在
  • 使用 mysql-server docker 容器在多个服务器上创建 MySQL 集群

    我正在尝试使用以下命令创建一个包含 3 个节点的 MySQL 集群mysql 服务器 https hub docker com r mysql mysql server 码头集装箱 I have 3个独立的云实例并且 docker 已在所有
  • Kafka Connect - 删除带有配置的连接器?

    我知道如何删除 Kafka 连接器 如此处所述Kafka Connect 如何删除连接器 https stackoverflow com questions 48947250 kafka connect how to delete a co
  • Ruby:#map 对于 bang 方法通常没有意义,是吗?

    这个问题的灵感来自于这个问题 Ruby 为什么这种使用地图的方式会抛出错误 https stackoverflow com questions 41853364 ruby why does this way of using map thr
  • 收到 ValueError: invalidliteral for int() with base 10: '' 错误并且不知道为什么

    我知道以前曾问过这个问题 但就我的情况而言 我似乎无法弄清楚为什么会抛出这个问题 当我尝试运行计算时 控制台出现以下错误 ValueError invalid literal for int with base 10 它说它来自 File
  • ActiveRecord 在 Ruby 1.9.2-rc1 下以 ASCII-8Bit 返回数据

    进一步说明标题 当从 ActiveRecord 加载数据时 尽管我尽了最大努力强制编码 但编码始终设置为 ASCII 8Bit 我在这里输入了尽可能多的详细信息 以尝试构建一个好的错误报告 有人可以用来帮助我 该项目使用以下技术 帕德里诺框
  • 正则表达式中从末尾开始的最短匹配

    给定一个输入字符串fooxxxxxxfooxxxboo我正在尝试编写一个匹配的正则表达式fooxxxboo即从第二个 foo 开始直到最后一个 boo 我尝试了以下方法 foo boo匹配完整的字符串fooxxxxxxfooxxxboo f
  • strcpy 到 mmap 地址返回总线错误

    我创建了一个进程 它调用设置了 MAP SHARED 标志的 mmap 当我尝试将字符串复制到该地址时 我收到总线错误核心转储 有人可以解释一下其背后的原因以及如何修复它 以下是我的代码 int main int fd 0 char ret
  • 停止/启动远程 Windows 服务并等待其打开/关闭

    最高答案这个问题 https stackoverflow com questions 187836 how do i restart a service on a remote machine in windows告诉我如何停止 启动远程服
  • Android 工具栏标题

    无法更改工具栏标题我在其中设置了标题manifeast xml 还使用了setTitle TITLE 我将标题设置为历史与报告但它显示不同的标题通知这是另一个活动标题 我检查了manifeast xml但没有变化 任何人都可以帮助我吗 这是
  • Python3.8 - FastAPI 和无服务器 (AWS Lambda) - 无法处理发送到 api 端点的文件

    我已经通过 AWS Lambda 函数将 FastAPI 与无服务器结合使用几个月了 效果非常好 我正在创建一个新的 api 端点 它需要发送一个文件 在我的本地计算机上使用时它工作得很好 但是当我部署到 AWS Lambda 时 当我尝试
  • 让SVM在Python中运行得更快

    使用code下面是 python 中的 svm from sklearn import datasets from sklearn multiclass import OneVsRestClassifier from sklearn svm
  • 使用 NumPy/SciPy 进行向量值函数插值

    有没有办法使用向量值函数进行插值NumPy http en wikipedia org wiki NumPy SciPy http en wikipedia org wiki SciPy 有很多适用于标量值函数的产品 我想我可以使用其中之一
  • Retrofit 将对象数组转换为 GSON 错误

    我正在使用 Retrofit 发出 HTTP 请求 该请求返回一个对象数组 但出现以下错误 com google gson JsonSyntaxException java lang IllegalStateException Expect
  • 播放wav文件c#代码

    如何在另一台电脑上播放 wav 文件 我知道我必须将 wav 文件作为输出设备上的缓冲区发送 有人可以用 C 给出一个简短的 eq 吗 您需要使用 Flash 或 Silverlight 在浏览器中播放音频 您不需要重新发明轮子 此外 除了
  • Linux 上使用 C/C++ 编写的简单原始套接字服务器

    我正在尝试使用原始套接字构建以太网 我无法使用 TCP IP UDP 或任何其他协议 这是因为它将与非常简单的硬件进行通信 这些硬件没有资源来处理所有不同的协议层 我的网络将由一台主机组成 通过以太网交换机与多个硬件进行通信 此时 我基本上