返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 醉染图书NIO与Socket编程技术指南9787111604068
  • 正版全新
    • 作者: 高洪岩 著著 | 高洪岩 著编 | 高洪岩 著译 | 高洪岩 著绘
    • 出版社: 机械工业出版社
    • 出版时间:2018-07-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    醉染图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 高洪岩 著著| 高洪岩 著编| 高洪岩 著译| 高洪岩 著绘
    • 出版社:机械工业出版社
    • 出版时间:2018-07-01
    • 版次:1
    • 印次:1
    • 页数:437
    • 开本:16开
    • ISBN:9787111604068
    • 版权提供:机械工业出版社
    • 作者:高洪岩 著
    • 著:高洪岩 著
    • 装帧:平装
    • 印次:1
    • 定价:99.00
    • ISBN:9787111604068
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2018-07-01
    • 页数:437
    • 外部编号:1201732868
    • 版次:1
    • 成品尺寸:暂无

    前  言
    章缓冲区的使用1
    1.1NIO概述5
    1.2缓冲区介绍6
    1.3Buffer类的使用7
    1.3.1包装数据与获得容量7
    1.3.2限制获取与设置10
    1.3.3位置获取与设置12
    1.3.4剩余空间大小获取13
    1.3.5使用Buffermark()方法处理标记14
    1.3.6知识点细化测试15
    1.3.7判断只读22
    1.3.8直接缓冲区22
    1.3.9还原缓冲区的状态
    1.3.10对缓冲区进行反转24
    1.3.11判断有底层实现的数组28
    1.3.12判断当前位置与限制之间有剩余元素29
    1.3.13重绕缓冲区30
    1.3.14获得偏移量32
    1.3.15使用List.toArray(T[])转成数组类型33
    1.4ByteBuffer类的使用34
    1.4.1创建堆缓冲区与直接缓冲区35
    1.4.2直接缓冲区与非直接缓冲区的运行效率比较37
    1.4.3包装wrap数据的处理39
    1.4.4put(byteb)和get()方法的使用与position自增特40
    1.4.5put(byte[]src,intoffset,intlength)和get(byte[]dst,intoffset,intlength)方法的使用41
    1.4.6put(byte[]src)和get(byte[]dst)方法的使用46
    1.4.7put(intindex,byteb)和get(intindex)方法的使用与position不变49
    1.4.8put(ByteBuffersrc)方法的使用50
    1.4.9putType()和getType()方法的使用51
    1.4.10slice()方法的使用与arrayOffSet()为非0的测试53
    1.4.11转换为CharBuffer字符缓冲区及中文的处理54
    1.4.12转换为类型的缓冲区58
    1.4.13设置与获得字节顺序63
    1.4.14创建只读缓冲区65
    1.4.15压缩缓冲区65
    1.4.16比较缓冲区的内容66
    1.4.17复制缓冲区70
    1.4.18对缓冲区进行扩容72
    1.5CharBuffer类的API使用73
    1.5.1重载append(char)/append(Char-Sequence)/append(CharSequence,start,end)方法的使用73
    1.5.2读取相对于当前位置的给定索引处的字符74
    1.5.3put(Stringsrc)、intread(CharBuffertarget)和subSequence(intstart,intend)方法的使用74
    1.5.4staticCharBufferwrap(Char-Sequencecsq,intstart,intend)方法的使用76
    1.5.5获得字符缓冲区的长度76
    1.6小结77
    第2章通道和FileChannel类的使用78
    2.1通道概述78
    2.2通道接口的层次结构80
    2.2.1AsynchronousChannel接口的介绍82
    2.2.2AsynchronousByteChannel接口的介绍84
    2..ReadableByteChannel接口的介绍84
    2.2.4ScatteringByteChannel接口的介绍85
    2.2.5WritableByteChannel接口的介绍86
    2.2.6GatheringByteChannel接口的介绍87
    2.2.7ByteChannel接口的介绍88
    2.2.8SeekableByteChannel接口的介绍89
    2.2.9NetworkChannel接口的介绍90
    2.2.10MulticastChannel接口的介绍91
    2.2.11InterruptibleChannel接口的介绍92
    .AbstractInterruptibleChannel类的介绍93
    2.4FileChannel类的使用95
    2.4.1写操作与位置的使用97
    2.4.2读操作100
    2.4.3批量写操作106
    2.4.4批量读操作109
    2.4.5部分批量写操作117
    2.4.6部分批量读操作120
    2.4.7向通道的指定position位置写入数据128
    2.4.8读取通道指定位置的数据130
    2.4.9设置位置与获得大小135
    2.4.10截断缓冲区136
    2.4.11将数据传输到可写入字节通道138
    2.4.12将字节从给定可读取字节通道传输到此通道的文件中141
    2.4.13执行锁定操作145
    2.4.14FileLocklock()方法的使用160
    2.4.15获取通道文件给定区域的锁定160
    2.4.16FileLocktryLock()方法的使用162
    2.4.17FileLock类的使用162
    2.4.18强制将所有对通道文件的更新写入包含文件的存储设备165
    2.4.19将通道文件区域直接映到内存167
    2.4.20打开一个文件174
    2.4.21判断当前通道打开181
    2.5小结182
    第3章获取网络设备信息183
    3.1NetworkInterface类的常用方法184
    3.1.1获得网络接口的基本信息186
    3.1.2获取MTU大小189
    3.1.3子接口的处理190
    3.1.4获得硬件地址192
    3.1.5获得IP地址194
    3.1.6InterfaceAddress类的使用200
    3.1.7判断为点对点设备202
    3.1.8支持多播202
    3.2NetworkInterface类的静态方法204
    3.2.1根据索引获得NetworkInterface对象204
    3.2.2根据网络接口名称获得NetworkInterface对象204
    3..根据IP地址获得NetworkInterface对象205
    3.3小结205
    第4章实现Socket通信206
    4.1基于TCP的Socket通信206
    4.1.1验ServerSocket类的accept()方法具有阻塞特207
    4.1.2验Socket中InputStream类的read()方法也具有阻塞特210
    4.1.3客户端向服务端传递字符串212
    4.1.4服务端向客户端传递字符串213
    4.1.5允许多次调用write()方法进行写入操作215
    4.1.6实现服务端与客户端多次的往来通信216
    4.1.7调用Stream的close()方法造成Socket关闭219
    4.1.8使用Socket传递PNG图片文件221
    4.1.9TCP连接的3次“握手”过程222
    4.1.10标志位SYN与ACK值的自增特225
    4.1.11TCP断开连接的4次“挥手”过程226
    4.1.12“握手”的时机与立即传数据的特227
    4.1.13结合多线程Thread实现通信228
    4.1.14服务端与客户端互传对象以及I/O流顺序问题1
    4.2ServerSocket类的使用
    4.2.1接受accept与超时Timeout
    4.2.2构造方法的backlog参数含义5
    4..参数backlog的默认值
    4.2.4构造方法ServerSocket(intport,intbacklog,InetAddressbindAddr)的使用
    4.2.5绑定到指定的Socket地址240
    4.2.6绑定到指定的Socket地址并设置backlog数量242
    4.2.7获取本地SocketAdress对象以及本地端口243
    4.2.8InetSocketAddress类的使用244
    4.2.9关闭与获取关闭状态247
    4.2.10判断Socket绑定状态248
    4.2.11获得IP地址信息249
    4.2.12Socket选项ReuseAddress249
    4.2.13Socket选项ReceiveBuffer-
    Size257
    4.3Socket类的使用259
    4.3.1绑定bind与connect以及端口生成的时机259
    4.3.2连接与超时261
    4.3.3获得远程端口与本地端口262
    4.3.4获得本地InetAddress地址与本地SocketAddress地址263
    4.3.5获得远程InetAddress与远程SocketAddress()地址264
    4.3.6套接字状态的判断265
    4.3.7开启半读与半写状态266
    4.3.8判断半读半写状态268
    4.3.9Socket选项TcpNoDelay270
    4.3.10Socket选项SendBufferSize274
    4.3.11Socket选项Linger276
    4.3.12Socket选项Timeout287
    4.3.13Socket选项OOBInline288
    4.3.14Socket选项KeepAlive291
    4.3.15Socket选项TrafficClass293
    4.4基于UDP的Socket通信294
    4.4.1使用UDP实现Socket通信295
    4.4.2测试发送超大数据量的包导致数据截断的情况297
    4.4.3DatagramPacket类中常用API的使用299
    4.4.4使用UDP实现单播300
    4.4.5使用UDP实现广播301
    4.4.6使用UDP实现组播303
    4.5小结305
    第5章选择器的使用306
    5.1选择器与I/O多路复用306
    5.2核心类Selector、SelectionKey和
    SelectableChannel的关系307
    5.3通道类AbstractInterruptibleChannel与接口InterruptibleChannel的介绍310
    5.4通道类SelectableChannel的介绍311
    5.5通道类AbstractSelectableChannel的介绍313
    5.6通道类ServerSocketChannel与接口NetworkChannel的介绍313
    5.7ServerSocketChannel类、Selector和SelectionKey的使用315
    5.7.1获得ServerSocketChannel与ServerSocketsocket对象316
    5.7.2执行绑定操作317
    5.7.3执行绑定操作与设置backlg37
    5.7.4阻塞与非阻塞以及accept()方法的使用效果318
    5.7.5获得Selector对象320
    5.7.6执行注册操作与获得SelectionKey对象321
    5.7.7判断注册的状态322
    5.7.8将通道设置成非阻塞模式再注册到选择器3
    5.7.9使用configureBlocking(false)方法解决异常3
    5.7.10判断打开的状态324
    5.7.11获得阻塞锁对象325
    5.7.12获得支持的SocketOption列表325
    5.7.13获得与设置SocketOption327
    5.7.14获得SocketAddress对象327
    5.7.15阻塞模式的判断328
    5.7.16根据Selector找到对应的SelectionKey328
    5.7.17获得SelectorProvider对象329
    5.7.18通道注册与选择器330
    5.7.19返回此通道所支持的操作332
    5.7.20执行Connect连接操作333
    5.7.21判断此通道上正在进行连接操作336
    5.7.22完成套接字通道的连接过程338
    5.7.类FileChannel中的longtran-sferTo(position,count,Writable-ByteChannel)方法的使用340
    5.7.24方法publicstaticSocketChannelopen(SocketAddressremote)与SocketOption的执行顺序342
    5.7.25传输大文件344
    5.7.26验read和write方法是非阻塞的346
    5.8Selector类的使用348
    5.8.1验publicabstractintselect()方法具有阻塞350
    5.8.2select()方法不阻塞的原因和解决办法351
    5.8.3出现重复消费的情况353
    5.8.4使用remove()方法解决重复消费问题355
    5.8.5验产生的set1和set2关联的各自对象一直是同一个356
    5.8.6intselector.select()方法返回值的含义360
    5.8.7从已就绪的键集中获得通道中的数据362
    5.8.8对相同的通道注册不同的相关事件返回同一个SelectionKey363
    5.8.9判断选择器为打开状态365
    5.8.10获得SelectorProviderprovider对象365
    5.8.11返回此选择器的键集366
    5.8.12publicabstractintselect(longtimeout)方法的使用367
    5.8.13publicabstractintselectNow()方法的使用368
    5.8.14唤醒操作369
    5.8.15测试若干细节370
    5.9SelectionKey类的使用380
    5.9.1判断允许连接SelectableChannel对象381
    5.9.2判断已准备好进行读取383
    5.9.3判断已准备好进行写入384
    5.9.4返回SelectionKey关联的选择器386
    5.9.5在注册操作时传入attachment附件387
    5.9.6设置attachment附件389
    5.9.7获取与设置此键的interest集合390
    5.9.8判断此键有效392
    5.9.9获取此键的ready操作集合392
    5.9.10取消操作395
    5.10DatagramChannel类的使用396
    5.10.1使用DatagramChannel类实现UDP通信398
    5.10.2连接操作399
    5.10.3断开连接400
    5.10.4将通道加入组播地址400
    5.10.5将通道加入组播地址且接收指定客户端数据402
    5.11Pipe.SinkChannel和Pipe.SourceChannel类的使用403
    5.12SelectorProvider类的使用406
    5.13小结407
    第6章AIO的使用408
    6.1AsynchronousFileChannel类的使用408
    6.1.1获取此通道文件的独占锁409
    6.1.2获取通道文件给定区域的锁410
    6.1.3实现重叠锁定412
    6.1.4返回此通道文件当前大小与通道打开状态413
    6.1.5ComlioHandler接口的使用413
    6.1.6publicvoidfailed(Throwableexc,Aattachment)方法调用时机414
    6.1.7执行指定范围的锁定与传入附件及整合接口415
    6.1.8执行锁定与传入附件及整合接口ComlioHandler416
    6.1.9lock(position,size,shared,attachment,ComlioHandler)方法的特点418
    6.1.10读取数据方式1420
    6.1.11读取数据方式2420
    6.1.12写入数据方式1421
    6.1.13写入数据方式2422
    6.2AsynchronousServerSocketChannel和AsynchronousSocketChannel类的使用422
    6.2.1接受方式1425
    6.2.2接受方式2427
    6..重复读与重复写出现异常428
    6.2.4读数据429
    6.2.5写数据433
    6.3同步、异步、阻塞与非阻塞之间的关系436
    6.4小结437

    高洪岩,某世界500强项目经理,有10年Java相关开发经验,精通Java语言,擅长J2EE、E、Android、报表和多线程,以及并发相关的技术内容,理论与实践经验颇丰。著有《Java多线程编程核心技术》《Java并发编程:核心方法与框架》《NIO与Socket编程技术指南》《Java EE核心框架实战 第2版》《Jasper Reports+iReport报表开发详解》《Android学习精要》等书籍。

    Preface?前    言为什么要写这本书早在几年前,笔者就曾想过整理一份基于Java语言的NIO与Socket相关的稿件,因为市面上大部分的Java书籍都是以1章或2章的篇幅介绍NIO与Socket技术,并没有完整地覆盖该技术的知识点,而于当的时间及精力,一直没有如愿。    机会终于来了,公司要搭建基础构架知识体系,我负责公司该技术方向的培训,这重燃了我对NIO和Socket技术的热情。在学习Java技术的过程中,当学习了Java SE/Java EE之后想探索更深层次的技术,如大数据、分布式和高并发类等,可能会遇到针对NIO、Socket的学习,但NIO和Socket技术的学习并不像JDBC一样简单,学习NIO和Socket时可能要遇到很多的问题。为了在该技术领域有更高的追求,我将NIO和Socket的技术点以教案的方式进行了整理,并在公司中与同事一起进行学习和交流,同事的反响热烈。若干年前的心愿终于达成,同事们也很期待这本书能早日出版发行,那样他们就有真正的纸质参考资料了。希望本书能够受到学习NIO和Socket的读者喜爱,这是我优选的心愿。    本书介绍NIO和Socket开发中值得关注的内容,并给出个人的一些想法和见解,希望拓宽读者的学习思路。    在学习NIO和Socket技术之前,建议先了解一下多线程与并发相关的知识,这对设计和理解代码有大的帮。多线程方面的资料《Java多线程编程核心技术》,并发相关的资料《Java并发编程:核心方法与框架》,这两本书都是笔者编著的,希望可以给读者带来一些帮。    本书特色在本书写作的过程中,我尽量做到言简意赅,并且全部用演示案例的方式来讲解技术知识点,使读者看到代码及运行结果后就可以知道此项目要解决的是什么问题。这类似于网络中的博客风格,让读者用短的间学习知识点,明白知识点的应用方式及使用时的注意事项,取得快速学习并解决相应问题的效果。    读者对象Java程序员系统架构师大数据开发者对NIO和Socket技术感兴趣的人员如何阅读本书本着实用、易懂的学习原则,本书通过6章内容来介绍Java多线程相关的技术。    章介绍NIO技术中的缓冲区,包括Buffer、ByteBuffer、CharBuffer类的核心API的使用。    第2章介绍NIO技术中的Channel(通道)类的继承关系、核心接口的作用,并重点介绍FileChannel类的使用,以增加读者对NIO操作File类的熟悉度。    第3章介绍如何使用NetworkInterface类获得网络接口的信息,包括IP地址、子网掩码等,还会介绍InetAddress和InterfaceAddress类的常见API。如果进行Java开发,且基于Socket技术,那么这章可以给你需要的信息。    第4章介绍如何使用Java语言实现Socket通信。Socket通信是基于TCP/IP和UDP实现的。另外,将介绍ServerSocket、Socket、DatagramSocket和DatagramPacket类的全部API。只有熟练掌握Socket技术后,在阅读相关网络框架的源代码时才不会迷茫。也就是说,如果读者想要进行Java高能后台处理,那么必须要学习Socket,并且它是进行细化学习的基础。    第5章介绍NIO技术中重要的Selector(选择器)技术。NIO技术的核心——多路复用就是在此章体现的。学习这章内容需要有Socket的编程基础,这就是为什么在前面用两章篇幅来介绍Java的Socket编程的原因。同步非阻塞可以大幅度提升程序运行的效率,就在此章体会一下吧。    第6章介绍AIO。AIO是异步IO,NIO是非阻塞IO。AIO在NIO的基础上实现了异步执行、回调处理等不错功能,可以在不同的场景使用AIO或NIO,可以说NIO和AIO是Java不错程序员、架构师等必须要掌握的技术。    勘误和支持由于笔者的水平有限,加之编写仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正,期待能够得到你们的真挚反馈,在技术之路上互勉共进。若读者想与我进行技术交流,可发邮件到279377921@qq.com。    致谢感谢所在单位领导的支持与厚爱,使我在技术道路上更有信心。    感谢机械工业出版社华章公司的高婧雅,始终支持我的写作,你是我的编辑。因为你们的鼓励和帮,所以我才会如此顺利地完成了这本书的写作。    高洪岩

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购