在C语言中,关于socket编程有哪些好的书籍或指南值得推荐?

12

请问有哪些适合用于C语言套接字编程的指南/书籍/材料呢? 我正在阅读Beej网络编程指南,但它只是给出了概述。
您能否推荐其他的书籍或指南?


1
Beej的网络编程指南对于大多数简单应用程序来说已经足够了。 - Kylotan
我同意Kylotan的观点,Beej's指南非常不错。如果这还不够好,那么我建议直接阅读《UNIX网络编程》第1卷。 :) - BobbyShaftoe
如果你已经有APUE书籍的话,我认为这个主题也在书中讨论过 :-). - p4bl0
2个回答

19

同意。这有点像圣经。完成后,学习高并发编程模型。建议如果在Linux 2.6x上学习使用epoll,如果在Win/MSVC上,则尝试使用完成端口和新的AIO。访问Effo NetMsg C/C++开源项目以了解更多关于epoll、网络消息传递和高并发编程模型的知识。 - Test
2
可能是个愚蠢的问题:如果你计划在Windows上编程,那么阅读它是否值得? - Niki
1
@nikie 是的,我个人认为是这样。但是,我记得从1995年版的http://www.amazon.com/Windows-Sockets-Network-Programming-paperback/dp/0768682320/中受益。 - Sinan Ünür
@sinan 这肯定适用于任何现代的Linux发行版,对吧? - gideon
我在阅读套接字编程的第一卷后,是否应该继续阅读第二卷?第二卷更多地涉及IPC而非网络编程。 - milanHrabos

5

Sinan Ünür所说的UNIX网络编程开始。在你对套接字有了相当的掌握后,阅读TCP/IP详解卷1。不要跳过这一步,因为它会极大地增加你对各种网络协议的了解。就我而言,我认为这两本书应该是任何考虑在套接字层进行网络编程的人的基础。


我在阅读套接字编程的第一卷之后,是否应该继续阅读第二卷?第二卷的内容更多地涉及进程间通信而非网络编程。 - milanHrabos
《UNIX网络编程》第2卷对于基于IP的网络编程并不是非常有用。如果你正在进行基于线程的编程,那么它是有用的。我建议阅读Stevens的《UNIX环境高级编程》,以了解更多与网络编程无关的UNIX系统编程知识。 - D.Shawley
我非常欣赏UNIX系统编程,但我更感兴趣的是使用C或C++创建CGI。在理解了套接字之后,我找不到一本同样质量的关于C++ CGI/ Web开发的书籍(这将遵循我现在拥有的套接字API知识)。你知道有什么书吗? - milanHrabos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接