c - 使用 Linux 和 C 通过串口发送文件

标签 c linux serial-port

我正在开发一个从串行端口读取数据并通过 TCP 连接发送数据的应用程序,反之亦然。不幸的是,从串行端口读取数据时,它永远不会停止。它不检测 EOF 标记,也不检测 EOL 或其他一些特殊字符。

那么,我如何在 C 和 Linux 中通过串行端口检测文件结尾(或“连接结束”)?

最佳答案

取决于您对用于串行链路的协议(protocol)的控制程度。除非文件隐含地包含一些文件结束标记(据我了解您的帖子,它们没有),否则您需要实现某种通信协议(protocol)才能传输文件。

BBS 时代使用的一些最简单的协议(protocol)是 XMODEM而且是衍生品。它们可能足够简单,供您使用。

如果您在串口线的另一端有一台成熟的计算机,那么仅通过串口线设置 PPP 链接并通过 TCP/IP 进行通信可能会简单得多。

关于c - 使用 Linux 和 C 通过串口发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1317276/

相关文章:

c++ - 通过 USB 串行端口(C++ 控制台应用程序)在 Arduino 和 PC 之间进行通信

objective-c - 为什么在与 USB 转串行适配器通信时此串行通信代码会挂起?

arduino - 如何从 Arduino 更改处理中的背景

c++ - 为什么这个嵌套 printf 语句打印 "5 53"?

c - C中n数组的交集和并集

使用 header 错误 header 交叉编译应用程序和 gcc

c - 通过标准输入读取二进制数据的问题

objective-c - 在 C 数组中存储 NSObject 指针数组

c++ - 将 C++ 字符串传递给 C 库以进行内存管理

java - unix中java命令的含义