在Linux操作系统上,通过TCP协议发送/接收数据

Send/Receive data through TCP on Linux

本文关键字:数据 协议 TCP 操作系统 Linux 通过      更新时间:2023-10-16

我是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程序。