2009-07-28 94 views
13

虽然我没有专业的插座,我觉得它们很有趣。我读了理查德史蒂文斯的Unix网络编程的一部分(认为是圣经,我认为它是每个人都提到我问),但问题是这些例子需要一个通用头文件unp.h,这是一个PIA使用。关于Unix/Linux套接字编程的好读物?

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

回答

20

规范性引用文件是由W. Richard Stevens编写的UNIX网络编程。 upn.h实际上只是一个帮手头,为了使书中的例子更清晰 - 它没有做任何特别的魔术。

要快速起床并运行,很难超过Beej's Guide To Network Programming using Internet Sockets

+4

它已被所有和各种各样的,我相信也有其他良好的阅读。尝试它的例子是PIA。我看到的问题是实例中给出的头文件是实际函数的包装,并不是学习API的方式。最重要的是,它们不会编译(至少在我的系统上经过反复失败的尝试) – rocknroll 2009-07-28 05:35:44

+0

你正在研究哪个Linux系统? Beej的页面说Fedora Core(版本3 IIRC)... – 2009-07-28 07:48:59

12

我用Beej's Guide to Network Programming

有大量的客户端和服务器代码的例子与的每一步的解释。

+0

+1:这是一个很棒的快速入门指南。应该足够让你编写自己的随机套接字驱动应用程序。 – ojrac 2009-07-28 14:26:25

1

APUE是熟悉unix环境以及unix环境中的C编程的好方法,以便您可以继续使用套接字编程。

1

您可以参考我在很久以前教本科计算机科学课程教材,计算机网络基础,在ufl.edu我写文章:"A Crash Course In Unix TCP/IP Socket Programming".

纸是旧的。我很惊讶,当我为此而斗争时,仍然有六种引用。

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

祝你好运!

1

这似乎是进入游泳池或跳水头首先进入深处的典型困境。

FWIW我发现Steven的包装代码也很烦人,我一直在努力争取至少一些在我尝试过的每个平台上工作的例子。也就是说,这些包装器大部分都隐藏着微不足道的错误处理,而这些错误处理本来就是重复的,没有意义的,并且在一本已经很大的书中占据了更多的空间。 (尽管公平,编辑们可以丢掉XTI的最后四分之一来腾出空间。)

网络编程已经足够深入了一个话题,您可以交替使用表面波和做炮弹。已经提到了几个很好的快速入门来源,可以让你通过“哇,我得到它工作”的阶段。但是当你需要提升到“我需要它坚强和可靠,因为我的工作/产品取决于它”阶段时,你会欣赏史蒂文斯,疣和所有,因为他不可思议的能力来预测你目前的问题。

史蒂文的工作有几章我成功忽视了多年。但当我需要他们时,我确信他们在那里。

1

W. Richard Stevens的UNIX Network Programming Volume 1/2是传奇。

Ithilgore也在raw sockets上写了非常详细的文档。另外,Beej的套接字编程指南写得很好,简单易懂,并且有明确的建议。

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

0

也考虑更一般的参考, 的Unix™系统编程:通信,并发和线程 凯A.罗宾斯,罗宾斯史蒂芬 Prentice Hall的 ISBN:0-13-042411-0

不过,理查德·史蒂芬的书是对特定主题