您的浏览历史

Java TCP/IP Socket编程(原书第2版)

促销活动
  • [本书]参加机械工业出版社华章公司满58元赠书活动

基本信息

内容简介回到顶部↑

本书基于TCP/IP Socket相关原理,对如何在Java中进行Socket编程作了深入浅出的介绍。.
本书内容简明扼要,条理清晰,并在讲解相应的概念或编程技巧时列举了大量的示例程序,每章附有练习。
本书适合作为Java Socket编程的入门教程,也可供从事网络相关专业的技术人员参考。
在TCP/IP Socket首次发布时,Java作为一个新的未被关注的编程语言刚出现。然而,自2001年以来,Java的网络,编程能力已经得到了很大程度的扩展,而且持续的应用优势已经使其成为了一个占主导地位的平台。考虑到Java受欢迎程度和近期在形式上和功能上令人兴奋的创新,本书的新版涵盖了Java的当前最新版本的内容(1.5版至1.7版),以及一些新的重要的抽象,包括NetworkInterface,IntedaceAddress,Inet4/6Address抽象、SocketAddress/InetSocketAddress和Executor等。现在几乎所有互联网应用程序都使用JavaSocket进行通信,而本书专注的、教导式的方法,使读者能够快速掌握所有计算机通信的任务和技术要点。 ..
本书特点
·对Socket编程的重点进行了集中简明的介绍,以使读者能够迅速掌握;并且使工程师们能够迅速地将所学的技能应用到他们的日常工作中。
·对最新的Java平台(1.7)进行了简明而紧随其发展的介绍。使开发者即使在最新的技术面前也能处理大量未探究的陷阱。
·配套网站(books.elsevier.com/companions/9780123742551)为所有的示例程序提供了源码,从而使读者能够在上下文中查看重要的对象和方法,并理解每行代码的作用。...

作译者回到顶部↑

本书提供作译者介绍

Kenneth L.Calvert 肯塔基大学(Universily of Kentucky)的教授,他的教学和研究方向是计算机网络系统。他、已经有近20年的TCP/IPSocket编程经验。 .
Michael J.Donahoo 贝勒大学(Baylor University)的副教授,为大学生或大学研究生讲授计算机网络课程。他已经编著了在各种编程语言下进行Socket编程的多本书籍和一本有关SQL的书籍。...
.. << 查看详细

目录回到顶部↑

译者序.
前言
第1章 简介
1.1 计算机网络、分组报文和协议
1.2 关于地址
1.3 关于名字
1.4 客户端和服务器
1.5 什么是套接字
1.6 练习
第2章 基本套接字
2.1 套接字地址
2.2 TCP套接字
2.2.1 TCP客户端
2.2.2 TCP服务器端
2.2.3 输入输出流
2.3 UDP套接字
2.3.1 DatagramPacket类
2.3.2 UDP客户端
2.3.3 UDP服务器端
2.3.4 使用UDP套接字发送和接收信息

译者序回到顶部↑

如今,TCP/IP已成为计算机网络协议事实上的标准,而Java凭借其跨平台特性和对网络编程的强大支持能力,在网络应用中已占据了主导地位。本书基于TCP/IP套接字的相关原理,对如何在Jflvfl中进行套接字编程作了深入浅出的介绍。.
本书内容简明扼要,条理清晰,并在讲解相应的概念或编程技巧时列举了大量的示例程序,能够使读者在动手过程中加深理解,而每章结束时的练习可以帮助读者检查自己对已学知识的掌握程度,因此非常适合作为Java套接字编程的入门教程。虽然本书专注于介绍如何使用Java进行TCP/IP套接字编程,但其涉及的套接字相关概念和基本原理与具体编程语言无关,从而使读者能够抓住套接字编程的本质,并轻松地转向其他编程语言。..
译者在翻译本书时尽量忠实于原文,必要时对原书中提到的概念作了一定的解释,并力求做到言简意赅。限于水平,翻译过程中难免有疏漏之处,敬请广大读者批评指正。...
周恒民
于北京中关村东路
2008年10月

前言回到顶部↑

多年来,大学里的计算机网络课程使学生很少或几乎没有动手实践的机会。由于各种各样的原因(其中也包含一些积极因素),教师仅仅通过公式、分析以及对协议栈的抽象描述来讲授计算机网络的原理。教科书里可能会包含一些代码,但都没有与学生能够动手实践的任何东西结合起来。但是我们相信,如果能让学生看到(然后实现)这些原理在实际应用中的具体例子,他们将学得更好。所幸的是情况已经发生了变化。互联网已经成为人们日常生活的一部分,大部分学生(以及他们的程序)都能快速方便地访问网络服务,而且能免费获得大量正式软件(不分优劣)。.
我们基于写《TCP/IP Sockets in C》同样的目的编写了本书:我们需要一些编程练习资源来支持计算机网络课程的学习。我们旨在为学生提供充足的引导,使他们能够在真实的网络服务中实践,而不会手足无措。在掌握了基本原理后,学生就能够进一步接触一些高级任务,并从中学习到路由算法、多媒体协议、介质访问控制等相关知识。我们尽量使本书像我们之前其他书一样,让学生选择自己熟悉的编程语言和技术,从而保证他们能学会相同的技能并理解相同的概念。当然,目前尚不清楚这一目标是否可以实现,但是无论如何,本书的范围、定价以及介绍的深度都力求做到这点。
面向的读者
本书面向两种类型的读者。第一类是学习计算机网络课程的本科生或研究生,他们是促使我们写这本书的首要因素。第二类是了解Java,想要学习利用Java来编写互联网应用程序的人。我们尽量保持了内容的简洁和专一性,因此本书既可以作为学生的辅助教程,也可以作为从业者涉足这一领域的入门指南。但是,你不能期望自己读完本书后就成为这一领域的专家!本书的目的只是引导读者入门并掌握足够的知识,从而能够进行独立研究和学习。
为配合练习,读者应有一台安装Java的计算机。本书基于Java 1.6版和Java虚拟机(JVM),然而,除少量较新的方法外,本书的代码也能在更早版本的Java中运行。由于Java具有可移植性,在不同硬件和操作系统上运行程序没有差别。
内容主线
第1章对计算机网络的概念进行了总体概述。从各方面看,这一介绍并不全面,但能够使读者与贯穿全书的概念和术语相同步。第2章介绍了简单的客户端和服务器的结构,这章中的代码能作为进行各种练习的起点。第3章涵盖了有关消息的创建和解析的基础内容。读者若能理解并消化前3章的内容,将能够为简单应用协议实现一个客户端和服务器。第4章和第5章介绍了建立具有扩展性和健壮性的客户端与服务器端的高级技术,其中,第5章专注于工具的应用,并对“New I/O”包进行了讲解。最后,为了与“通过程序来阐明原理”的目的相一致,第6章从细节上讨论了程序的构造和底层协议的实现之间的关系。
本书主要通过简单的程序实例来介绍一些编程概念,每一个实例后都附有对每行代码的注解,用以说明程序各部分的功能。这样使读者能够结合程序的上下文来理解重要的对象和方法。当你阅读代码时,就能理解每行代码的作用。
我们的例子并没有涵盖Java中所有库的应用。有些功能,特别是序列化技术,要求相互通信的所有节点都是由Java实现的。同时,为了尽快地介绍实例,我们刻意避免介绍引入之后将被清除的类和方法。我们尽量保持了内容的简洁,尤其是前面几个章节。..
本书不包含哪些内容
作为一本辅导教程,为了使其定价保持在合理的范围内,我们必须对本书所涉及的内容有所限制,同时也要严格专注于前面所提出的目标。由于我们省略了某些方面的主题,因此有必要说明本书不包含哪些内容:
·本书不是一本介绍Java编程语言的书。我们只专注于TCP/IP套接字编程,同时希望读者已经熟悉Java语言的基本语法特征和类库(包括后期发布版所包含的内容,如泛型等),并知道如何使用Java进行程序开发。
·本书不是一本介绍协议的书。通过阅读本书并不能使你成为IP、TCP、FTP、HI"TP或其他已知协议(可能反馈协议除外)的专家。我们的关注点在于套接字抽象层为17CP/IP服务所提供的接口。如果你已经对TCP协议和IP协议工作机制有所了解,这将对后续的学习有所帮助,不过第1章已经对相关内容做了足够的介绍。
·本书并不是一本介绍隐藏了通信细节的Java类库集(如HTTPConnection)而使程序员工作变得更轻松的实用指南。本书讲授进行通信协议相关开发的基础,而不是去回避它,因此书中并没有对那些隐藏了通信细节的API进行介绍。我们希望读者能够从通信线路的传输内容上理解协议,所以本书在大部分情况下直接使用了简单的字节流和显式的字符编码,并不对URI、URLConnection等类进行介绍。相信读者一旦理解了底层的基本原理,对那些更方便的类的使用就很容易上手了。
·本书不是一本讲解面向对象设计的书。我们致力于介绍TCP/IP套接字编程的重要原理,并通过实例对这些原理进行简要说明。本书尽可能使实例代码符合面向对象设计的思想,但如果这样做会增加代码的复杂度从而使套接字的原理变得模糊,或使代码变得臃肿,我们将把清晰性放在第一位,舍弃面向对象设计的思想。本书也没有包含有关网络编程的设计模式。(尽管我们认为本书也为理解这类设计模式提供了一些必要的背景知识!)
·本书不是一本讲解如何编写适用于生产环境的高质量代码的书。再次声明,虽然我们尽量使代码具有一定的健壮性,但这些实例代码的主要目的还是为了教学。为了避免由于使用了大量的错误处理代码而导致原理的含糊,我们放弃了一定的健壮性,使代码更加简洁清晰。
·本书不是一本介绍如何用Java实现自定义的本地套接字的书。我们仅专注于Java标准库所提供的TCP/IP套接字,并没有对各种实现了套接字的包装器类进行介绍(如Socketlmpl类)。
·为了避免本书中的实例聚集了过多的无关代码(即与套接字编程无关的代码),我们所有例子都是基于命令行的。在本书的网站上e有一些基于图形界面的网络应用程序的例子,本书没有将其纳入或进行讲解。
·本书不是关于Java Applet的书。applet使用了相同的Java网络API,因此一些通信代码看起来非常相似,不过Applet所能进行的通信方式有着非常严格的安全限制。我妈对这限制进行了有限的讨论,并在本书的网站上提供了一个Applet应用程序的例子。然而,对Applet网络编程的完整介绍不属于本书讨论的范围。
致谢
评论交流

共有2人开贴评论  4人参与评论  2人参与打分 查看

0人
 0%
用户平均打分
我要写评论 help如何参与评论和打分
1人
 50%
0人
 0%
0人
 0%
1人
 50%

assjjwz123

三级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2010-2-9 9:42:00
书还行的,看了收获非常大,了解了TCP/IP套接字的相关原理,以及如何在Java中进行套接字编程。非常适合作为Java套接字编程的入门教程
您觉得呢? 送鲜花 (得0支)  扔鸡蛋 (得0个)

jimmy_shine

二级评论员
该会员在china-pub购买过此书
评价等级:  
发表于:2009-4-2 8:38:00
如果说书的内容写得不好是作者本身的原因的话,那么多其它的各个方面只能说是出版社的问题。
随便列出本书的问题:1、word排版 2、为了使书的厚度增加,采用了如下方式:(1)中文字体比一般书大一号 (2)行间距明显大,至少是1/3 (3)代码的字体不采用常用的,采用的字体明显会比常用的字体大一号 (4)采用对章前多留空白,章节后面留白纸的来增加厚度。 再别说书本身的排版的问题了。
如果说TestNG这本书从内容上面还值得买的话,这本书就一无所是了。
总之,这本书无论是从价值还是从出版社来说,都不值得你花甚至是10块钱去买,全书的内容除了最后一章稍微可以读一下之外。本书还包括了对于线程的介绍,调度的介绍等。而且本书还明确的指出,本书的代码从健壮性以及面向对象来说,都不是很遵守的。
如果真想看,还不如买Java网络编程一书。
回复 ( 2条评论-- 点击查看讨论 )
您觉得呢? 送鲜花 (得2支)  扔鸡蛋 (得0个)
我要写评论
查看所有评论交流(共2条)