背景: 我习惯于使用 Windows 并使用 IDE 来创建项目,例如 Visual Studios。但我现在的任务是使用 linux、Gedit 和 G++,而且我从来没有任何经验。
任务 我正在尝试编写一个程序来 ping 网络上的设备并收集一些相关信息。我需要在不使用任何 IDE 的情况下完成此操作,最终它必须是一段在盒子内使用的独立代码。
我认为我需要做的事情 我想我需要找到一个具有相关功能的库来设置套接字和所有其他细节。但除此之外我不知道该去哪里。
请有人教教我,我感觉像一条离开水的鱼。我从哪里开始:(
最佳答案
我相信ping网络上的设备你的意思是ICMP ,另见icmp(7) .
理解如何在 Linux 上执行此操作的明显方法是利用它由 free software 组成的优势。并获取与 ping
命令相关的源代码(在 Debian 和 Ubuntu 上的 inetutils-ping 包中)。另外,您可以strace
一些ping
命令(要了解相关的系统调用,另请参阅 syscalls(2) 和 Advanced Linux Programming 书)。
我强烈建议养成编译、研究和改进自由软件的习惯。
您还可以使用libping图书馆;您可能需要 root 权限。
有关 Linux 上 C 和 C++ 开发的提示,请参阅 this answer .
关于linux - 使用 G++ 在 Linux 中编写 ping 程序时从哪里开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744713/