在Linux操作系统上,通过TCP协议发送/接收数据
Send/Receive data through TCP on Linux
我是Linux新手,正在努力学习,所以我的问题很普遍。我试图有一个在Linux上运行的应用程序,从输入接收数据,也许是一个USB端口,然后创建一个字符串并将其发送到web服务器,web服务器将处理该字符串(我对web服务器部分很好)。关键是它必须连续完成,没有用户交互。
从哪里开始?我应该用c++吗?而且我对PHP也很熟悉,可以用它吗?我想投入时间,开发一些非常可靠的东西。
最后,你能给我一些关于如何开始精通Linux的建议吗?我已经在Windows上开发了,但我想转移到Linux并掌握它。
谢谢。
如果你正在寻找使用套接字进行网络编程的入门读物,这里有经典的Beej指南- http://beej.us/guide/bgnet/
非常适合初学者和IMHO,关于套接字编程的最佳编写入门/教程之一。
如果你习惯使用Windows和。net,你可以在Linux上编译和运行你的程序,感谢Mono http://www.mono-project.com/。如果您对通过HTTP发送和接收内容感兴趣,可以查看http://webserver.codeplex.com/。
我会从PHP或Java的套接字开始。当一切都有意义时,再从那里继续。
如果你真的想学习*nix系统,并且你想解决这个问题,你应该从命令行学习使用管道。
对于你的USB到Web的例子,我会写两个程序:
- 从USB设备读取数据并将其打印到标准输出(控制台)
- 从标准输入中读取数据并将其发布到web(您可能会将其编写为使用'curl'实用程序的bash脚本)
从这里,您只需将一个应用程序的输出管道连接到另一个应用程序的输入:
$ usb_program | web_program
这就是Unix/Linux系统最初设计的使用方式,您的问题提供了管道应该解决的问题的完美示例。
你的问题有点模糊。
- 哪个设备正在创建数据?
- 数据生成设备具有哪些接口能力(串行,USB,以太网)。Wifi) ?
在您的Linux机器上,最简单的解决方案可能是shell脚本轮询串行端口(甚至可以是USB端口作为串行端口),并将文本逐行写入纯文本文件中,PHP可以从中读取它。
示例:cat < /dev/ttyS0 >> ./input.txt
(顺便说一句,这个命令行甚至可以从PHP程序中启动)
根据Linux机器和数据生成设备中可用的通信协议,解决方案体系结构可以变得更复杂和更强大。
很多事情都可以在Unix的shell(=命令提示符)中完成,而不必调用开发C程序。
- 防止主数据类型C++的隐式转换
- 选择和 UDP 协议组合时无法接收数据
- 使用 UDP 协议从 Windows 套接字发送到 Qt 套接字的网络数据包上的结构编码和解码
- 将二进制数据缓冲区存储在协议缓冲区消息中
- 当数据被写入协议缓冲区时,我如何让Java触发C++程序,反之亦然
- 协议缓冲区、Apache Thrift或任何其他数据结构序列化协议中的递归数据结构
- 协议缓冲区;将数据保存到磁盘并重新加载问题
- Google 协议缓冲区C++在面对恶意数据时实现稳定性和安全性
- 如何使用协议缓冲区和 ZeroMQ 在 c++ 和 java 之间交换二进制数据
- 解码像 FAST 这样的数据协议的快速方法是什么,其中数据以字节为单位编码,并将位作为存在标志
- Google协议缓冲区和std::字符串用于任意二进制数据
- 无法使用 udp 协议从网络接收数据
- 通过LevelDB将协议缓冲区序列化数据从C++传递到Python
- 发送数据包到UBX协议
- 谷歌协议缓冲区-对编码解码base64 char * c字符串协议缓冲区数据感到困惑
- (Qt或其他)拖放数据的mime类型的uri-list与协议http或ftp在Windows桌面或explorer.ex
- 通过套接字发送协议缓冲区数据并确定类
- 用于数据传输的标准字节通信协议
- 在Linux操作系统上,通过TCP协议发送/接收数据
- 数据传输协议设计