`
ah_fu
  • 浏览: 227876 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

权威老了?《UNIX网络编程》一书中过时的地方

阅读更多
    最近打算简单封装一下Linux下的socket函数,使之成为一个好用的类,参考书的蓝本选用了经典的《UNIX网络编程》。

    在书中,作者提到,使用send()函数发送数据的时候,如果协议栈的发送缓冲区满了,send()函数将返回-1,并且errno为EINTR,这个时候应该重新调用send()继续发送。为了避免频繁地处理这种错误,作者自己写了个sendn函数代替send。
    而查查man send和MSDN,里面明确讲了,对于阻塞套接字,当系统缓冲区满的时候,send()函数会一直阻塞,直到系统缓冲区可用。

    从作者写这本书开始,到今天socket编程接口的改变,其中的差异已经非常非常大了。虽然书中的很多思想仍然可用,但是其中过时的描述无疑会将初学者引入歧途。

    个人建议大家不要再将这本书作为SOCKET编程的入门教材,通过直接查询man来一边编码一边领悟或许会是更好的方式。
 
分享到:
评论

相关推荐

    UNIX环境高级编程第三版 英文

    这个系列较少有其他地方可以提供的准确权威的书籍,涉及编程语言、操作系统和网络技术的当前艺术状态,因此它在技术出版界中的地位也非常重要。 通过上述内容,我们可以了解这本书在UNIX编程领域的重要性和它所覆盖...

    莱昂氏unix源代码分析(英文版+完整源码)

    - **网络编程**:如套接字编程等。 ##### 7. 安全特性 Unix提供了多种安全机制: - **用户认证**:通过用户名和密码验证用户身份。 - **权限模型**:每个文件和目录都有所有者、组和其他用户的访问权限。 - **...

    iPhone SDK编程入门经典

    iOS是一种基于Unix的操作系统,专为移动设备设计,提供了简洁易用的用户界面,并拥有强大的功能支持。 - **发展历史**:自2007年第一代iPhone发布以来,iOS已经经历了多次重大更新,不断引入新特性以适应市场和技术...

    Brian Kernighan

    他的职业生涯大部分时间都在贝尔实验室度过,这是一个孕育了许多重大科技发明的地方,包括UNIX系统和C语言。 **C语言与Kernighan** 1978年,Kernighan与Dennis Ritchie合著了《The C Programming Language》(通常...

    linux源代码分析

    《Linux源代码分析》是IT领域中一本深入探讨操作系统内核的权威著作,它主要针对的是Unix源代码,因为Linux与Unix在很多设计思想和实现上有着深厚的渊源。Unix作为历史上最早的多用户、多任务操作系统之一,其源代码...

    BOOST程序库完全开发指南.rar

    Boost.Asio是Boost库中一个非常重要的组件,它是网络编程和异步I/O的基础,支持TCP、UDP、Unix域套接字等多种协议,并且提供了非阻塞的事件驱动编程模型。开发者可以利用Boost.Asio轻松地编写高效的并发服务器和...

    Linux 程序设计权威指南

    但由于自由软件经常是作者用业余时间编的,现有编程环境是否让程序员喜爱 就成为一个问题.KDevelop希望能够更进一步:让程序员编程更容易且更有效率:在同样的开发阶 段,用KDevelop编制的程序能更可靠,功能更多. ...

    《The C Programming Language》kindle版6寸PDF

    《The C Programming Language》是一本经典且权威的C语言编程指南,自1978年首次出版以来,它就成为了学习C语言的标准教材之一。随着计算机科学和技术的不断发展,该书也经历了多次更新和完善,以适应新的技术环境和...

    Linux命令简明教程

    - **Linux系统简介**:Linux是一种自由和开放源代码的操作系统,基于POSIX和UNIX标准,它支持多种平台,包括个人计算机、服务器、移动设备等。本文档主要介绍了在Ubuntu Linux发行版中的常用命令行操作。 - **与...

Global site tag (gtag.js) - Google Analytics