首页>参考读物>计算机科学与技术>软件与程序设计

Java网络编程实战
作者 : 李建英 编著
出版日期 : 2022-03-10
ISBN : 978-7-111-70063-0
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 352
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书全面介绍如何使用Java开发网络程序,将学习使用Java的网络类库既快速又轻松地完成常见的网络编程任务。本书共11章,主要内容包括: TCP/IP协议基础、搭建Windows下的Java网络开发环境、搭建Linux下的Java网络开发环境、本机网络信息编程、Java多线程编程、TCP套接字编程、FTP网络编程、UDP编程和即时通信系统的设计、网络服务器设计、网络性能工具IPerf的使用、IPv6编程等。
本书适用于所有Java编程人员,包括Java初学者和资深Java开发人员。本书还可作为高校的Java教材以及企业的Java培训教材。

图书特色

从事Java网络编程长达15年的资深作者,剖析Java网络应用典型架构
阐述Java网络编程基础知识和重要技术,涵盖大厂面试的核心难题
提供在线
  QQ交流群,
及时与
读者互动

图书前言

  用Java开发的人越来越多,但是市面上介绍Java网络编程的书不多,而且所讲述的内容大多比较老旧(和一线开发关系不大),所以迫切需要一本紧贴一线实战的网络编程书。编者长期从事一线Java开发,知道哪些内容是初学者和中级开发者必须要掌握的,哪些是开发过程中的痛点和难点,所以编写了本书将这些经验转化成一个个精心设计的小实例来展现给读者。 
  本书对套接字编程的重点知识进行简单介绍,以使读者能够迅速掌握,并且能够迅速将所学的技能应用到日常工作中。除了基本的套接字编程外,本书还设计了较为复杂的综合案例,使读者能灵活地应用套接字编程(包括TCP编程和UDP编程)。另外,本书还重点阐述了网络服务器的设计,比如如何设计并发服务器。本书所选的都是典型、主流的方法和库,既高效又实用,同时精心打磨技术细节,以提高读者的学习效率。
  本书的一大特色是实例丰富,读者可以跟着实例进行实战练习。同时本书讲解细致,从基本的开发环境搭建到基本的网络编程技术,再逐步过渡到网络服务器的设计,学习曲线非常平缓,这样可以使读者持续保持学习热情,一步一步往前走。通过阅读本书,读者不仅可以掌握网络编程的实用技术,还可以进一步提高用面向对象的思想来设计和编写Java软件的能力。 
  本书的资源文件可以登录机械工业出版社华章分社的网站(www.hzbook.com)下载,方法是:搜索到本书,然后在页面上的“资源下载”模块下载即可。如果下载有问题,请发送电子邮件至booksaga@126.com。如果读者有兴趣,也可以加入QQ技术交流群(492823357)参与讨论 
  虽然编者尽了最大努力,但是书中依旧可能会出现疏漏之处,恳请读者批评指正。另外,如果阅读本书的过程中遇到问题,可以发送邮件(3189505006@qq.com)进行咨询,编者也会将本书的勘误放到QQ(3189505006)空间中。

  编 者
  2021年9月

上架指导

计算机\程序设计

封底文字

易学易用,一本能“操作”的图书,
教你快速成为Java 网络编程高手

内容通俗易懂,
注释详尽,
能够帮助初学者快速掌握
Java网络编程技巧


全面解析Java的
典型网络应用场景,
深挖Java网络编程架构

提供大量经典实用的
范例,每个范例都配备
完整的源码

适用于Java编程人员,
同时也可作为高校的
Java教材和企业的
Java培训教材

图书目录

前言
第1章 TCP/IP基础 1
1.1 什么是TCP/IP 1
1.2 TCP/IP的分层结构 1
1.3 应用层 5
1.3.1 DNS 6
1.3.2 端口 6
1.4 传输层 7
1.4.1 TCP 7
1.4.2 UDP 7
1.5 网络层 8
1.5.1 IP 8
1.5.2 ARP 14
1.5.3 RARP 16
1.5.4 ICMP 17
1.6 数据链路层 26
1.6.1 数据链路层的基本概念 26
1.6.2 数据链路层的主要功能 26
第2章 在Windows下搭建Java开发环境 28
2.1 下载JDK 28
2.2 安装JDK 29
2.3 配置JDK环境变量 29
2.4 在命令行下编译Java程序 30
2.5 在Eclipse中开发Java程序 31
2.6 下载Eclipse 31
2.7 启动Eclipse 32
2.8 第一个Eclipse下的Java工程 33
2.9 在工作区打开工程 36
2.10 搭建Java Web开发环境 36
2.10.1 下载Tomcat 36
2.10.2 安装Tomcat 36
2.10.3 在Eclipse中配置Tomcat 38
2.10.4 第一个Eclipse下的JSP工程 39
2.10.5 第一个JavaBean工程 43
2.11 使用JNI 47
2.12 搭建Java图形界面开发环境 51
第3章 在Linux下搭建Java开发环境 57
3.1 部署虚拟机Linux环境 57
3.1.1 在VMware下安装Linux 57
3.1.2 关闭防火墙 60
3.1.3 制作快照 61
3.1.4 以桥接模式连接Linux虚拟机 61
3.1.5 通过终端工具连接Linux虚拟机 64
3.1.6 与虚拟机互传文件 66
3.2 命令行编译运行Java程序 66
3.3 图形化界面开发Java程序 67
3.3.1 第一个IDEA开发的Java应用程序 68
3.3.2 使用第三方JAR库 71
3.3.3 使用Linux中的SO库 75
第4章 本机网络信息编程 79
4.1 IP地址类InetAddress 79
4.1.1 获取远程Web主机的IP地址 81
4.1.2 获取本地环回地址 82
4.1.3 单网卡下的本机地址 83
4.2 网络接口类NetworkInterface 85
4.2.1 得到所有网络接口 87
4.2.2 得到本机所有网卡的IP地址 89
第5章 Java多线程编程 94
5.1 使用多线程的好处 94
5.2 多线程编程的基本概念 95
5.2.1 操作系统和多线程 95
5.2.2 线程的基本概念 96
5.2.3 操作系统中线程的状态 97
5.2.4 线程函数 97
5.2.5 线程标识 98
5.3 Java中的多线程概述 98
5.3.1 线程的创建 98
5.3.2 线程的状态 100
5.3.3 线程同步 100
5.3.4 线程阻塞 101
5.3.5 守护线程 102
5.3.6 线程组 102
5.4 Thread类 103
5.4.1 构造方法 104
5.4.2 成员方法 104
5.4.3 创建线程 107
5.4.4 线程的属性 111
5.4.5 调度策略 113
5.4.6 Java中线程的状态 116
5.4.7 线程休眠 118
5.4.8 线程让步 119
5.4.9 线程结束 122
5.4.10 等待线程结束 126
第6章 TCP套接字编程 128
6.1 网络程序的架构 128
6.2 套接字的基本概念 129
6.3 套接字地址 131
6.3.1 构造方法 131
6.3.2 getAddress方法 132
6.3.3 getPort方法 132
6.3.4 getHostName方法 132
6.3.5 createUnresolved方法 132
6.4 套接字的类型 133
6.5 TCP套接字编程的基本步骤 135
6.6 服务器的ServerSocket类 135
6.6.1 构造方法 136
6.6.2 accept方法 137
6.6.3 close方法 137
6.6.4 ServerSocket类的其他方法 137
6.7 客户机的Socket类 139
6.7.1 构造方法 139
6.7.2 得到输入流getInputStream 139
6.7.3 得到输出流getOutputStream 141
6.7.4 禁用输出流shutdownOutput 141
6.7.5 连接服务器的connect函数 141
6.7.6 获取和设置读取数据的超时时间 142
6.7.7 Socket类的其他方法 142
6.8 实战TCP通信 144
6.9 深入理解TCP编程 149
6.9.1 数据发送和接收涉及的缓冲区 149
6.9.2 TCP数据传输的特点 150
6.9.3 数据发送的6种情形 150
6.9.4 数据接收时碰到的情形 151
6.9.5 简单情况的数据接收 152
6.9.6 定长数据的接收 156
6.9.7 ObjectInputStream和ObjectOutputStream 159
6.9.8 发送和接收类对象 167
6.9.9 变长数据的接收 169
6.10 带图形界面的登录程序 170
6.11 处理多种接收意外情况 173
第7章 FTP网络编程 180
7.1 FTP概述 180
7.2 FTP的工作原理 181
7.3 FTP的传输方式 182
7.3.1 FTP的工作方式 183
7.3.2 FTP命令 184
7.3.3 FTP应答码 186
7.4 开发FTP客户端程序 188
7.4.1 客户端需求分析 188
7.4.2 概要设计 188
7.4.3 详细设计 188
7.4.4 开发FTP服务端程序 193
第8章 UDP编程和即时通信系统的设计 213
8.1 UDP概述 213
8.2 TCP和UDP的比较 214
8.3 UDP在Java中的实现 215
8.4 UDP通信的流程 219
8.5 第一个UDP程序 219
8.6 即时通信概述 221
8.7 系统平台的选择 222
8.7.1 应用系统平台模式的选择 222
8.7.2 C/S模式介绍 222
8.7.3 数据库系统的选择 223
8.8 系统需求分析 223
8.8.1 即时消息的一般需求 223
8.8.2 即时消息的协议需求 224
8.8.3 即时消息的安全需求 224
8.8.4 即时信息的加密和鉴别 224
8.8.5 注册需求 225
8.8.6 通信需求 225
8.9 系统总体设计 225
8.10 即时通信系统的实施原理 226
8.10.1 即时通信的工作方式 226
8.10.2 即时通信的基本技术原理 226
8.10.3 即时通信方式 227
8.11 功能模块划分 227
8.11.1 模块划分 227
8.11.2 服务端程序的功能 228
8.11.3 客户端程序的功能 228
8.11.4 服务端程序的多线程 229
8.11.5 客户端程序的多线程 229
8.12 数据库设计 229
8.12.1 数据库的选择 230
8.12.2 准备MySQL 230
8.12.3 下载JDBC驱动 233
8.12.4 聊天系统数据库设计 236
8.13 服务端程序的设计 238
8.14 客户端程序的设计 251
第9章 网络服务器设计 263
9.1 概述 263
9.2 操作系统的IO模型 264
9.2.1 基本概念 264
9.2.2 同步和异步 264
9.2.3 阻塞和非阻塞 266
9.2.4 同步、异步和阻塞、非阻塞的关系 268
9.2.5 为什么要采用套接字的IO模型 269
9.2.6 同步阻塞IO模型 270
9.2.7 同步非阻塞IO模型 271
9.2.8 同步多路复用IO模型 271
9.2.9 同步信号驱动IO模型 272
9.2.10 异步IO模型 273
9.2.11 5种IO模型比较 274
9.3 Java IO流 275
9.3.1 输入流和输出流 275
9.3.2 字符流 276
9.3.3 运行机制 276
9.4 传统服务器模型BIO 277
9.4.1 单线程模型 278
9.4.2 多线程模型 280
9.4.3 线程池模型 281
9.5 NIO及高性能网络模型的构建 287
9.5.1 通道 288
9.5.2 缓冲区 292
9.5.3 选择器 299
9.5.4 实战NIO服务器 303
第10章 网络性能工具Iperf的使用 310
10.1 Iperf概述 310
10.2 Iperf的特点 310
10.3 Iperf的工作原理 311
10.4 Iperf的主要功能 312
10.5 Iperf在Linux下的使用 312
10.5.1 在Linux下安装Iperf 312
10.5.2 Iperf的简单使用 314
10.6 Iperf在Windows下的使用 315
10.6.1 命令行版本 315
10.6.2 图形用户界面版本 315
第11章 IPv6编程 316
11.1 IPv4的现状和不足 316
11.1.1 地址空间、地址方案与路由问题 317
11.1.2 网络管理与配置问题 321
11.1.3 服务类型问题 322
11.1.4 IP选项问题 323
11.1.5 IPv4的安全性问题 323
11.2 是增加补丁还是彻底升级改进 323
11.3 IPv6的发展历史 324
11.4 IPv6的特点 325
11.5 IPv6地址 326
11.5.1 IPv6地址表示方法 326
11.5.2 IPv6前缀 327
11.5.3 IPv6地址的类型 328
11.6 IPv6数据报格式 331
11.7 为系统设置IPv6地址 336
11.8 Java对IPv6的支持 336
11.8.1 IPv6地址的校验 337
11.8.2 正规化IPv6地址 342
11.8.3 获取本机IPv6地址 343

教学资源推荐
作者: 刘冰 张林 蒋贵全 杨勇 编著
作者: [意]阿尔贝托·博斯凯蒂(Alberto Boschetti) 卢卡·马萨罗(Luca Massaron) 著
作者: 钱丽萍 汪立东 张健 编著
作者: 汪同庆 关焕梅 汤洁
参考读物推荐