- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,作为训练练习,我想做的是实现这样的事情
客户端 --ethernet--> 调制解调器1 --GPIO--> 调制解调器2 --ethernet--> 我的家路由器
客户端使用以太网电缆连接到调制解调器1。
Modem1 是 Raberry PI,转换信号并通过 GPIO 中继
Modem2是Raberry PI,从GPIO接收数据,并通过以太网线将其发送到我的家庭路由器
我想实现调制解调器,但不知道从哪里开始。
我已经阅读了一些有关以太网编程的内容,但仍然找不到“简单的东西”之类的答案。
如何实现Modem1,以便当它连接到客户端时,客户端将其发现为互联网连接。
在Modem2端,如何让“我的家庭路由器”将发往“客户端”的数据包发送到Modem2,以便Modem2转发它们。
可能还有我没有想到的事情......
那么,具体来说,我该如何实现呢?最好在 c 中。
最佳答案
我敢说您也许能够编写某种自定义 GPIO 中间层。
读以太网->封装->写GPIO->|->读GPIO->解封装->写以太网
(反之亦然)
问题就变成了:两个调制解调器如何充当“以太网代理”?
Modem1 充当路由器的代理。 Modem2 充当客户端的代理。如果您的 Raspberry Pi 可以欺骗 MAC 地址,您也许能够欺骗以太网对等点与调制解调器的以太网端口进行通信。之所以需要欺骗 MAC 地址,是因为在 TCP/IP 网络中,存在 ARP 表,它将远程 IP 地址映射到可以将 IP 数据包路由到远程 IP 地址或从远程 IP 地址路由到远程 IP 地址的 MAC 地址。这使得您的客户端能够通过 TCP/IP 与您的路由器进行通信。
另一个潜在的陷阱是调制解调器通信会引入延迟,从而干扰以太网层对协议(protocol)的处理。例如,以太网协议(protocol)可能具有实时约束,如果引入延迟,这些约束可能会被打破......
但是让我们假设在完美的世界中一切皆有可能......
您需要编写用于读取/写入以太网消息的代码(我见过用于在 Linux 中通过原始套接字读取/写入以太网数据包的开源代码)
您需要为 GPIO 通信编写自定义驱动程序。这意味着实现一个经过深思熟虑的协议(protocol)来管理引脚状态、消息开始、消息结束、数据有效负载、校验和等等......
最后,您需要编写一个顶层通信层来实现:
以太网到 GPIO 流程:
a) 从以太网端口读取,将以太网数据包封装成自定义消息(或消息片段)
b) 使用自定义 GPIO 协议(protocol)驱动程序将此自定义消息传达给外部 GPIO 对等
GPIO 转以太网流程:
a) 使用您的自定义驱动程序代码从 GPIO 读取b) 解封装以太网数据包c) 将以太网数据包写入以太网端口。
这两个进程永远运行...
同样,一切都取决于您的调制解调器是否可以将自己插入点对点连接而不干扰以太网协议(protocol)的自然流程......
至于“C”部分...
如果您使用开源库(或代码片段)通过原始套接字读取/写入原始以太网,那么很可能是用 C 编写的。
您的 GPIO 代码将以两种方式之一从 GPIO 引脚进行读写:从内存映射的 H/W 地址,或使用该 H/W 地址上的 ioport 调用。
Receive raw Ethernet frames in Linux
Send a raw Ethernet frame in Linux
祝你好运
关于c - 如何实现以太网调制解调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538140/
我正在尝试使用 USB 调制解调器发送短信(我有一个 D-Link USB 调制解调器)。我刚找到 SmsLib,但我不知道如何使用 USB 调制解调器。我找到的例子是串行调制解调器,我没有找到任何
我想知道有多少电话或系统连接到我的调制解调器?我尝试扫描从 1 到 254 的 IP 以发现连接的设备。但是当我尝试 InetAddress.isreachable(2000) 它在我的手机上工作但在
我安装了 Hyperterminal 并使用了我的 samsung galaxy s3 并使用 usb 数据线将它连接到我的笔记本电脑。我安装了驱动程序,计算机将 s3 检测为调制解调器。它在 sup
我想从 C# Windows 应用程序对我的 NETGEAR DGN2200 进行热重置,我的调制解调器是标准的 Netgear 调制解调器/路由器。不用telnet可以吗? 最佳答案 我希望这段代码
是否可以将 Android 移动设备用作 GSM 调制解调器? 多年来,我一直在使用 GSM 调制解调器。我正在 .net 下开发应用程序来调用数据电话、发送/接收短信等等,到目前为止我使用的是普通的
我希望我的 Android 能够作为 GSM 调制解调器工作,或者通过任何其他方式,特别是使用某些编程语言库通过它发送短信。以编程方式以及配置/安装等方式执行此操作的方法是什么? 最佳答案 1) 了解
我正在编写一个从 GSM 调制解调器(中兴通讯公司)接收短消息 (SMS) 的应用程序(+CMTI 通知) . 我已经完成了我的程序,但是当有一个多部分 SMS 时,我无法将它们相互连接,并且它们都以
我想与 gsm 调制解调器建立联系。我的第一个目标也是主要目标是发送和接收短信。然后我想走在前面。例如用于彩信发送和...我想在linux服务器上做。请向我介绍一个合适的模块及其教程或文档。谢谢您指导
尝试在 Linux 上使用 USB 调制解调器开发应用程序。使用具有 CNMI=1,1,0,1,0 设置的华为 E220(也尝试了其他 CNMI 设置均无效)并在接收到的消息上获取新消息指示以串行接收
任何人都可以告诉我,是否有任何可以检测当前运营商名称的AT命令? 我用过AT+COPS? 它返回给我运算符(operator)的数字代码:0,2,40410 然后我使用命令 AT+WOPN = 0,4
我正在为基于 AT 命令的调制解调器编写驱动程序。这是数据表 http://www.cermetek.com/Catalog/High-Speed-Modems/DataSheet/CH1794_60
我正在尝试制作一个发送短信的程序。我编写了程序,但没有成功发送消息。我的程序向计算机中的端口 COM 发送一个 At 命令,但我的 gsm 调制解调器没有得到响应。我正在使用 COM 终端(Temp
我想与我的 DFM-562IS D-Link 沟通使用 Java 的调制解调器(通过 PCI 插槽连接到我的计算机主板)。目标是监听来电并接收用户在连接后在另一端输入的代码(通过他/她的手机键盘)。
我有一个 GSM 调制解调器,它有一个与之关联的特定命令集。我想使用我的 c# 代码调用这些命令。可以这样做吗? GSM调制解调器型号:MOD 9001 BENQ GSM/GPRS调制解调器 我没有任
我想像开机重启一样重启 USB 调制解调器,而无需重启并在 Linux 机器中物理拔掉它。我试过执行此程序: echo -n 0 >/sys/devices/platform/omap/ti81xx-
我决定为我的 Linux 机器(Vmware 上的 OpenSuse 12.1 64 位)安装一个 GSM 调制解调器,这样我就可以将它用作 SMS 网关。我有一个提供 USB 接口(interfac
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我正在尝试在 windows-7 上制作一个简单的 java 应用程序,它可以在我的 citycell Zoom USB 调制解调器上发送 SMS。我使用 AT 命令(http://www.canar
我们在全局部署了一个客户端软件,它使用模拟电话线和 56K 调制解调器连接到用于上传数据的后端软件(后端服务器有多个模拟调制解调器卡)。这是一个封闭的系统,我们实现了自己的协议(protocol),还
我购买了中兴MF190 USB调制解调器并开始使用它。 到目前为止,我已经成功使用 TurboPowers 的免费 AsyncPro 组件以编程方式将短信发送到另一台移动设备。 我想知道是否有一种方法
我是一名优秀的程序员,十分优秀!