繁体   English   中英

C语言中与网络相关的底层软件的阅读材料,工具和库

[英]Readings, tools and libraries for low-level, network related, softwares in C

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

我对C感兴趣,因为我认为这是最适合的语言,无需考虑使用Assembly来开发设备驱动程序,固件和其他低级软件。特别是,我希望能够从事与网络相关的主题。 我想与硬件的工作非常接近,因为我认为这是我能够充实地攻读学位的唯一途径,同时又能成为一名程序员,对此我感到满意。

因此,我想问一下您认为我应该读什么,因为我已经可以用C语言写东西了,尽管没什么花哨的,而且我已经读过几次K&R。

如果您知道任何工具或库(例如libevent和libev),它们都是与网络相关的低级C编程领域的事实上的标准,那么也很高兴知道。

必须阅读书籍:

  • 史蒂文斯的TCP / IP说明
  • UNIX网络编程,史蒂文斯等

对于系统级网络代码(您对驱动程序等感兴趣),请参见OpenBSD源码,因为它紧凑,简洁,并且标准网络API几乎完全基于BSD。

取决于您要降低的水平。 有一个叫做uIP的小书架 ,它很好读,有据可查,并写了一些论文。 它比任何Linux socket / io编程都更接近硬件,因为没有内核可挡。

您可能还想看看tcpdump,它是一个不错的基于cli的嗅探器(用c编写),因此您既可以使用它,也可以将其拆开!

Beej的《网络编程指南》是入门的好地方。 如果您想深入研究,那么许多其他人建议您看看W. Richard Stevens撰写的Unix Network Programming,第1-2卷。

libcurl源如何? 在这里看看。

我已经多次使用了这种“ Linux I / O端口编程微型HOWTO” 这是C代码。

还有许多用于串行I / O的C代码示例。

并非完全针对C,而是像Wireshark这样的数据包嗅探器对于测试和调试网络相关程序确实很有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM