在Linux上通过TCP发送/接收数据

时间:2013-01-08 22:49:41

标签: c++ linux linux-device-driver

我是Linux的新手,并试图学习所以我的问题我真的很通用。我想要一个在Linux上运行的应用程序,从输入接收数据,可能是USB端口,然后创建一个字符串并将其发送到Web服务器,Web服务器将处理该字符串(我没关系网络服务器部分)。关键是它必须连续完成,没有用户交互。

我从哪里开始?我应该使用C ++吗?而且我对PHP非常满意,是否可以通过它完成这项工作?我想把时间花在上面,开发一些非常可靠的东西。

最后,你能否提出一些关于从哪里开始擅长Linux的建议,我已经在Windows中开发了,但我想转向Linux并掌握它。

感谢。

5 个答案:

答案 0 :(得分:1)

如果您正在寻找使用套接字进行网络编程的入门手册,那么有史以来经典的Beej指南 - http://beej.us/guide/bgnet/

非常适合初学者和恕我直言,这是关于套接字编程的最佳书面入门/教程之一。

答案 1 :(得分:1)

如果您习惯使用Windows和.NET,可以编译并运行Linux程序,感谢Mono http://www.mono-project.com/。如果您有兴趣通过HTTP发送和接收内容,可以查看http://webserver.codeplex.com/。我正在使用它们。

答案 2 :(得分:1)

我从PHP或Java的套接字开始。当一切都有意义时,继续前进。

答案 3 :(得分:1)

如果你真的想学习* nix系统,并且想要解决这个问题,你应该学习从命令行使用pipes

对于你的USB转Web示例,我会写两个程序:

  • 从USB设备读取数据并将其打印到标准输出(控制台)的文件
  • 从标准输入中读取数据并将其发布到Web上的数据(您可以将此第二个写为使用'curl'实用程序的bash脚本)

从那里你只需将一个应用程序的输出传输到另一个应用程序的输入中:

$ usb_program | web_program

这就是Unix / Linux系统最初设计使用的方式,您的问题就是管道应该解决的问题的完美示例。

答案 4 :(得分:0)

你的问题有点模糊。

  • 哪个设备正在创建数据?
  • 数据生成设备具有哪些接口功能(串口,USB,以太网.Wifi)?

Linux机器上最简单的解决方案可能是一个shell脚本轮询一个串口(甚至可以是用作串口的USB端口)并将文本逐行写入纯文本文件 - PHP可以从中读出来

示例:cat < /dev/ttyS0 >> ./input.txt

(BTW此命令行甚至可以从PHP程序内部启动)

根据Linux机器和数据生成设备中可用的通信协议,解决方案体系结构可能变得更加复杂和功能更强。

很多事情都可以在Unix中的shell(=命令提示符)中完成,并不一定要求开发C程序。