1

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

我从哪里开始?我应该使用 C++ 吗?而且我对PHP真的很满意,可以通过它来完成吗?我想花时间开发一些非常可靠的东西。

最后,您能否就从哪里开始精通 Linux 提出一些建议,我在 Windows 中开发过,但我想转向 Linux 并掌握它。

谢谢。

4

5 回答 5

1

如果您正在寻找使用套接字进行网络编程的入门书,这里有经典的 Beej 指南 - http://beej.us/guide/bgnet/

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

于 2013-01-08T22:54:11.240 回答
1

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

于 2013-01-08T22:54:16.717 回答
1

我将从 PHP 或 Java 中的套接字开始。当一切都变得有意义时,然后从那里继续前进。

于 2013-01-08T22:54:35.757 回答
1

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

对于您的 USB 到 Web 示例,我将编写两个程序:

  • 一种从 USB 设备读取数据并将其打印到标准输出(控制台)的设备
  • 从标准输入读取数据并将其发布到网络的一种(您可以将这一秒写为使用“curl”实用程序的 bash 脚本)

从那里您只需将一个应用程序的输出通过管道传输到另一个应用程序的输入:

$ usb_program | web_program

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

于 2013-01-08T23:05:40.383 回答
0

你的问题有点含糊。

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

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

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

(顺便说一句,这个命令行甚至可以从 PHP 程序内部启动)

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

许多事情可以从 Unix 的 shell(= 命令提示符)中完成,并且不一定需要开发 C 程序。

于 2013-03-19T19:00:19.060 回答