C语言中与低级网络相关的软件的读物,工具和库

时间:2009-02-17 21:00:47

标签: c networking drivers low-level firmware

我即将毕业于电子和Tlc工程,我在PHP和Java方面有一些不错的面向对象编程经验。
现在我想尝试开始作为C程序员的职业。

我对C感兴趣,因为我认为这是最适合的语言,不考虑汇编,开发设备驱动程序,固件和其他低级软件。 特别是我希望能够处理与网络相关的主题。 我想要非常接近硬件,因为我认为这是我能够有成效地学习学位的唯一方式,同时又能成为一名程序员。(
) 所以我想问一下你认为我应该阅读的内容,考虑到我已经可以在C中写一些东西了,但是我已经阅读了几次K& R。

如果您知道任何工具或库(如libevent和libev),这些工具或库是低级,网络相关的C编程领域的事实标准,那么也很好。

7 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

必读书:

  • TCP / IP Illustrated,Stevens
  • UNIX网络编程,Stevens等

对于系统级网络代码(您表示对驱动程序等感兴趣),请参阅OpenBSD sources,因为它很紧凑,干净,标准网络API几乎完全基于BSD。

答案 2 :(得分:1)

取决于您想要达到的低级别。有一个名为uIP的小堆栈  这是一个很好的阅读,它有很好的文档,并有一些关于它的论文。它更接近硬件然后任何linux socket / io编程,因为没有内核可以阻止。

你可能还想看一下tcpdump,它是一个很好的基于cli的嗅探器,(用c语言编写)所以你可以使用它,也可以将它拆开!

答案 3 :(得分:1)

Beej's guide to Network Programming是一个开始的好地方。如果你想沿着兔子洞走下去,那么就像许多其他人一样推荐看看Unix网络编程,由Richard Richard Steve编写的1-2卷。

答案 4 :(得分:0)

libcurl源怎么样?看看here

答案 5 :(得分:0)

我已多次使用此"Linux I/O port programming mini-HOWTO"。这是C代码。

serial I/O还有许多C代码示例。

答案 6 :(得分:0)

不完全是C特定的,但像Wireshark这样的数据包嗅探器对测试和测试非常有用。调试网络相关程序。