关于Unix / Linux套接字编程的好读物?

时间:2009-07-28 05:28:08

标签: c++ linux sockets

虽然我没有专业地使用套接字,但我发现它们很有趣。我阅读了理查德史蒂文斯的一些Unix网络编程的部分(我认为它是圣经,因为它被我要求的每个人推荐)但问题是这些例子需要一个通用的头文件unp.h,这是一个可以使用的PIA。

你们有些人可以为Unix / Linux中的套接字编程提供一个好的解读吗?考虑到我是比较有经验的C / C ++编码器。

10 个答案:

答案 0 :(得分:20)

规范参考是W. Richard Stevens的 UNIX网络编程。 upn.h实际上只是一个帮助标题,使书中的例子更清晰 - 它没有做任何特别神奇的事情。

要快速启动和运行,很难超越Beej's Guide To Network Programming using Internet Sockets

答案 1 :(得分:12)

我使用了Beej's Guide to Network Programming

有很多客户端和服务器代码示例,每一步都有解释。

答案 2 :(得分:1)

以下是C and Linux Socket主题的在线教程。

答案 3 :(得分:1)

APUE是让你熟悉unix环境以及unix上下文中的C编程的好方法,这样你就可以继续编程了。

答案 4 :(得分:1)

除了已经提到的Stevens书籍之外,我发现以下两个对TCP / IP编程问题(特别是陷阱和常见错误)的读取非常好且相对较短:

之后,您可能想要阅读网络应用程序的源代码。各种Linux实用程序和应用程序是一个很好的起点。

答案 5 :(得分:1)

您可以参考我在很久以前在ufl.edu教授本科计算机科学计算机网络基础知识时所写的论文:"A Crash Course In Unix TCP/IP Socket Programming".

论文陈旧。令我惊讶的是,当我为它Bin,时,仍有六个参考文献。

多年来,一些编译器语义和必要的头文件可能已经发生了一些变化,但是设置UDP或TCP套接字并执行所讨论的基本DNS内容的基础知识今天仍然有效。

祝你好运!

答案 6 :(得分:1)

这似乎是闯入游泳池或潜水头进入深层的经典困境。

FWIW我发现Steven的封装代码也很烦人,我一直在努力让至少一些示例在我尝试过的每个平台上运行。这就是说包装器隐藏了大部分琐碎的错误处理,这些错误处理本来就是重复的,没有启发性的,并且在已经很大的书中占用了更多的空间。 (虽然公平地说,编辑们可以丢掉覆盖XTI的书的最后1/4来腾出空间。)

网络编程足够深入一个主题,你可以替代地面波和做炮弹。已经提到了几个快速启动的良好来源,它们将让你超越“哇,我开始工作”阶段。但是当你需要提升到“我需要它坚固可靠,因为我的工作/产品依赖于它”阶段时,你会欣赏史蒂文斯,疣和所有人,因为他不可思议地预测你当前的问题。

史蒂文的作品多年来我成功地被忽略了。但是当我需要它们时,我很感激他们在那里。

答案 7 :(得分:1)

UNIX网络编程第1/2卷,由W. Richard Stevens传奇。

Ithilgore还写了一篇关于raw sockets的非常详细的文件。

此外,Beej的套接字编程指南编写得很好,易于理解,并且有明确的建议。

无论您阅读什么,请确保编写补充代码。

答案 8 :(得分:0)

您还考虑更一般的参考, Unix™系统编程:通信,并发和线程 作者:凯·罗宾斯,史蒂文罗宾斯 普伦蒂斯霍尔 ISBN:0-13-042411-0

不过,理查德史蒂文的书是关于该特定主题的最完整的参考书

答案 9 :(得分:0)

Michael Kerrisk一书(他也是Linux手册维护者)the linux programming interface

有关于unix编程的一切;从57到61的章节都在插座上。