Java 網絡編程實戰

李建英

  • 出版商: 機械工業
  • 出版日期: 2022-03-18
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 352
  • 裝訂: 平裝
  • ISBN: 7111700635
  • ISBN-13: 9787111700630
  • 相關分類: IPV6Java 程式語言TCP/IP
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書全面介紹如何使用Java開發網絡程序,
將學習使用Java的網絡類庫既快速又輕鬆地完成常見的網絡編程任務。
本書共11章,主要內容包括: TCP/IP協議基礎、搭建Windows下的Java網絡開發環境、
搭建Linux下的Java網絡開發環境、本機網絡信息編程、Java多線程編程、TCP套接字編程、
FTP網絡編程、UDP編程和即時通信系統的設計、網絡服務器設計、網絡性能工具IPerf的使用、IPv6編程等。

本書適用於所有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