登录/注册
下载豆瓣客户端
豆瓣 6.0 全新发布 ×

豆瓣

扫码直接下载

iPhone · Android
  • 豆瓣
  • 读书
  • 电影
  • 音乐
  • 同城
  • 小组
  • 阅读
  • FM
  • 时间
  • 豆品
豆瓣读书
搜索:
  • 购书单
  • 电子图书
  • 2024年度榜单
  • 2024年度报告

china-pub 上的一篇差评

云风 2006-12-26 16:49:54

本来想买来看看的,结果翻阅 china-pub 的书评,让我倒了胃口。

http://www.china-pub.com/member/bookpinglun/viewpinglun.asp?id=130

我自己也写了篇 blog 提到这本书,

http://blog.codingnow.com/2006/12/wsaasyncselect_winsock.html

我感觉读这本书,可能还不如看 msdn :(

下面转载:

等级: 用户:chjfth 类型: 读者 最新讨论:2005-5-13 11:40:25

得1支
[2005-05-12]
这几天看了这本书第一版的英文电子版,只看了第3章和第8章等少量几章,就觉得非常不爽,觉得这是个蹩脚作者写出来的书。我对此书原文的评价是两星,现在又被一帮烂仔翻译成中文,两星都取消得了。

【总述】
在 google 上搜索 "Network Programming for Microsoft Windows" errata ,会发现你找不到这本书的勘误表,这从一个侧面反映出这本书很烂(虽然它出了第二版)。

Winsock 编程肯定要用到底层 Windows API 知识、TCP/IP 的先验知识以及一些历史性的 BSD socket 编程的知识,这些知识这本书是没有详细介绍的,但本书作者却吝于指导读者去何处寻找这些先验知识(只有非常少的几处提及)。

作者写例子代码的能力很烂,经常是先做一段长篇大论之后,然后再抛出一大段程序(不少还是临时拼凑的代码片断),让你自己把程序中的各条语句和前面的长篇大论联系起来。看看 W.Richard.Stevend 的 《Unix 网络编程》,人家给出的每一个程序例子几乎都是可完整的(可编译运行的),而且每行代码前面加上行号,一行一行给你分析,而你 Anthony Jones 呢?

【具体例子】
Winsock 函数要求使用的 Event 是用 WSACreateEvent 创建的,但这和 CreateEvent 来创建的事件句柄有没有什么差别呢?我希望在这本书中得到答案,但作者完全回避了。

第8章的 Socket I/O Models,本来是循序渐进的介绍 Winsock 四种 I/O 模型的重头戏,但你将发现这一整章中作者没列出一个完整的、可编译的例子。配书光盘上倒是用可编译的例子,但是写得很烂。看了其中的 EventSelect 例子后,才知道他书中列出的例子代码(片断)原来是这个 eventselect.cpp 中的“关键”语句拼凑出来的。
查看了那个 EventSelect 例子(CUI)后,发现这个程序是无法正常退出的,除非某个 API 意外地出现失败。我本来期望这个例子能够有用户按下 ESC 键后能够正常退出的功能,但我非常失望,他没有。一个真正有用的网络应用程序不仅仅是跟 socket 打交道,它还得响应,并且高效地处理其他的异步事件(比如用户的键盘输入),如何结合这两类操作往往是难点所在。

我还仔细看了第4章——named pipe。这章中的多线程管道服务器倒是可以按键后退出,但它只是简单的通过 main 线程 return 的方式退出,退出时野蛮地终结了所有的管道服务线程。幼稚!
第4章还有一个严重错误:MSDN 明确告知 ConnectNamedPipe 因为ERROR_PIPE_CONNECTED 而导致失败时,实际上是表示管道连接成功,但作者所有例子的 ConnectNamedPipe 都没有检查这个错误码,而是把它跟其他真正的失败同样对待。顺便提提,我去查了该书的第二版,这个错误并没有被修正!——或许,他只是把第一版的一整章内容抄过来罢了。


赞
转发
回应 只看楼主
messi
2010-07-27 23:33:55 messi

原来如此,,,那我果断不去买了。。

赞
>
psyche
2015-11-16 11:14:13 psyche

迄今看过的老外写得最烂的书,翻译就更不用了说了,搞不明白微软出版社会出这么没水平的书砸自己牌子。

赞
>

> 我来回应

> 去Windows网络编程技术的论坛

© 2005-2025 douban.com, all rights reserved 北京豆网科技有限公司 关于豆瓣 · 在豆瓣工作 · 联系我们 · 法律声明 · 帮助中心 · 图书馆合作 · 移动应用