1.1進程間通信1
1.2計算機網絡的概念3
1.3 OSI參考模型5
1.4 TCP/IP參考模型和TCP/IP協議8
1.4.1 IP協議
1.4.2 TCP協議和端口14
RFC 1.4.3 15簡介
1.4.4客戶端/服務器通信模式16
1.5用Java 17編寫客戶/服務器程序
1.5.1創建EchoServer 18
1.5.2創建回聲客戶端20
1.6匯總22
1.7練習23
第2章插座用法的詳細說明25
2.1構造插座25
2.1.1設置等待建立連接的超時時間26
2.1.2設置服務器的地址26
2.1.3設置客戶端的地址27
2.1.4客戶端連接到服務器時可能引發的異常27
2.2獲取插座30的信息
2.3關閉插座32
2.4半封閉插座33
2.5插座38的設置選項
2.5.1 TCP_NODELAY選項38
2.5.2 SO_RESUSEADDR選項38
SO_TIMEOUT選項39
2.5.4 SO_LINGER選項42
SO_RCVBUF選項44
SO_SNDBUF選項45
SO_KEEPALIVE選項45
2 . 5 . 8 OOB line選項45
服務類型選項45
2.5.10設置連接時間、延遲和帶寬的相對重要性46
2.6發送郵件的SMTP客戶端程序47
2.7匯總51
2.8練習52
第3章服務器套接字使用細節55
3.1構造服務器套接字55。
3.1.1綁定端口55
3.1.2設置用戶連接請求隊列的長度56
3.1.3設置綁定的IP地址58
3.1.4默認構造方法的作用58
3.2接收和關閉與客戶的連接59
3.3關閉服務器套接字60。
3.4獲取服務器套接字60的信息
3.5服務器插座選項62
3.5.1 SO_TIMEOUT選項62
3.5.2 SO_REUSEADDR選項63
SO_RCVBUF選項64
3.5.4設置連接時間、延遲和帶寬的相對重要性64
3.6創建多線程服務器65
3.6.1給每個客戶分配壹個線程65。
3.6.2創建線程池67
3.6.3使用JDK類庫72提供的線程池
3.6.4使用線程池的註意事項74
3.7關閉服務器76
3.8摘要80
3.9練習81
第4章無阻塞通信83
4.1線程阻塞的概念83
4.1.1線程阻塞的原因83
4.1.2阻止服務器程序中多線程通信的限制84
4.1.3無阻塞通信的基本思想85
4.2 Java . nio包中的主要類87
4.2.1緩沖器緩沖器88
4.2.2字符編碼字符集90
頻道90
4.2.4可選通道類別92
4.2.5服務器套接字通道類93
93級插座通道
選擇器等級96
4.2.8選擇鍵類別97
4.3服務器編程示例100
4.3.1創建壹個阻塞的EchoServer 100。
4.3.2創建無阻塞的EchoServer 103。
4 . 3 . 3 echo server中混合阻塞模式和非阻塞模式110。
4.4客戶端編程示例114
4.4.1創建阻塞的回聲客戶端114。
4.4.2創建非阻塞EchoClient 116。
4.4.3創建壹個非阻塞PingClient 120。
4.5摘要126
4.6練習127
第5章創建非阻塞HTTP服務器129
5.1 HTTP協議簡介129
5.1.1 HTTP請求格式129
5.1.2 HTTP響應格式132
5.1.3測試HTTP請求133
5.2創建壹個非阻塞的HTTP服務器137
5.2.1服務器主程序:
HttpServer類137
5.2.2帶自動增長緩沖區的ChannelIO類138
5.2.3負責處理各種事件。
處理器接口140
5.2.4負責處理接收連接的準備工作。
事件的AcceptHandler類140。
5.2.5 RequestHandler類141負責接收HTTP請求和發送HTTP響應。
5.2.6表示HTTP請求的請求類143。
5.2.7表示HTTP響應的響應類145。
5.2.8表示響應體的內容接口及其實現類147。
5.2.9運行HTTP服務器149。
5.3匯總150
5.4練習151
第六章客戶端協議處理框架153
6.1客戶端協議處理框架的主要類153
6.2在客戶端程序中使用協議處理框架154
6 . 2 . 1 URL類154的使用
6 . 2 . 2 URL connection類156的使用
6.3實現協議處理框架160
6.3.1創建EchoURLConnection類161
6.3.2創建EchoURLStreamHandler和工廠類162。
6.3.3創建EchoContentHandler類和工廠類163。
6.3.4使用ECHO協議處理EchoClient類中的框架165。
6.4摘要166
6.5練習167
第7章展示了帶有Swing組件的HTML文檔169。
7.1在按鈕和其他組件上顯示HTML文檔170
7.2用JEditorPane組件171創建壹個簡單的瀏覽器。
7.3摘要179
7.4練習179
第8章基於UDP的
數據報和套接字181
8.1 UDP協議簡介181
8.2 DatagramPacket類184
8.2.1選擇數據報大小185。
8.2.2讀取並設置DatagramPacket 185的屬性。
8.2.3數據格式轉換186
8.2.4重復使用DatagramPacket 187
8.3 DatagramSocket類189
8.3.1構造DatagramSocket 189
8.3.2接收和發送數據報190
8.3.3管理連接190
8.3.4關閉DatagramSocket 191。
8 . 3 . 5 datagram套接字選項191
8.3.6 IP服務類型選項193
8.4 DatagramChannel類193
8.4.1創建數據通道194。
8.4.2管理連接194
8.4.3用send()方法發送數據報194。
8.4.4用receive()方法接收數據報195。
8.4.5用write()方法發送數據報198。
8.4.6用read()方法接收數據報199。
8.5多播套接字202
8.5.1多播套接字類205
8.5.2多播套接字207的示例
8.6摘要209
8.7練習210
第9章對象的序列化和反序列化213
9.1 JDK類庫中的序列化API 213
9.2實現可串行化接口218
9.2.1序列化對象圖220
9.2.2控制序列化行為222
9 . 2 . 3 read resolve()方法在singleton類229中的應用
9.3實現外部化接口231
9.4不同版本的可序列化類的序列化兼容性233
9.5摘要235
9.6練習236
第10章Java語言的反射機制239
10.1 Java反射API 239簡介
10.2在遠程方法調用中使用反射機制244
10.3代理模式248
10.3.1靜態代理類248
10.3.2動態代理類250
遠程方法調用中的10.3.3
使用代理類253
10.4匯總258
10.5練習259
第11章RMI框架261
11.1 RMI 262的基本原理
11.2創建第壹個RMI應用264
11.2.1創建遠程接口264
11.2.2創建遠程類265
11.2.3創建服務器程序267
11.2.4創建客戶端程序269
運行RMI應用程序270
11.3遠程對象工廠設計模式272
11.4在遠程方法中傳遞參數和返回值277
11.5回調客戶端的遠程對象281
11.6遠程對象的並發訪問286
11.7分布式垃圾收集289
11.8遠程對象294的equals()、hashCode()和clone()方法
11.9使用安全管理器294
11.10 RMI應用程序的部署和類的動態加載46638.66666666661
11.11遠程激活297
11.12匯總303
11.13練習304
第12章通過JDBC API訪問數據庫305
12.1 JDBC 306的實現原理
12.2安裝和配置MySQL數據庫308
12.3 JDBC API 310簡介
12.4 JDBC API 314基本用法
12.4.1處理字符編碼317的轉換。
12.4.2將連接數據庫的各種屬性放在配置文件318中。
12.4.3管理連接、語句和結果集對象的生命周期321
12.4.4執行SQL腳本326
12.4.5處理SQLException 328
12.4.6輸出JDBC日誌329
12.4.7獲取新插入記錄329的主鍵值
12.4.8設置批量捕獲屬性330
12.4.9檢測驅動程序使用的JDBC版本330。
12.4.10元數據331
12.5可滾動和可更新的結果集333
12.6行集339
12.7調用存儲過程346
12.8處理Blob和Clob數據347
12.9控制交易351
12.9.1交易351的概念
12.9.2聲明事務邊界的概念353
12.9.3在mysql.exe程序中申報交易354
12.9.4通過JDBC API聲明事務邊界356
12.9.5保存點357
12.9.6批量更新358
12.9.7設置事務隔離級別360
12.10數據庫連接池
12.10.1創建連接池
12.10.2數據源數據源369
12.11匯總371
練習372
第13章基於MVC和RMI 375的分布式應用
13.1 MVC設計模式簡介375
13.2店鋪申請簡介377
13.3創建視圖381
13.4創建控制器389
13.5創建型號390
創建獨立的應用程序394
13.7創建分布式應用程序395
13.8匯總398
13.9練習398
第14章通過JavaMail API發送和接收郵件
14.1電子郵件協議簡介
14.1.1 SMTP簡單郵件傳輸協議401
14.1.2 POP3郵局協議402
接收郵件的新協議IMAP 402
14.1.4 MIME 403簡介
14.2 JavaMail API 403簡介
14.3建立JavaMail應用程序的開發環境405
14.3.1獲取JavaMail API 405的類庫。
14.3.2安裝和配置郵件服務器406
14.4創建JavaMail應用程序408
14.5認證412
14.6 URLName類416
14.7創建和閱讀復雜的電子郵件
14.7.1電子郵件地址419
郵件頭420
14.7.3郵件標誌421
14.7.4郵件正文422
14.8操作郵件夾427
14.9摘要432
練習433
第15章安全網絡通信435
15.1 SSL 435簡介
15.1.1加密通信436
15.1.2安全證書436
15.1.3 SSL握手437
15.1.4創建自簽名安全證書438
15.2 JSSE簡介439
15.2.1密鑰庫、密鑰管理器和信任管理器類442
15.2.2 SSLContext class 443
15.2.3 sslserversocket工廠類444
15 . 2 . 4 SSLSocketFactory Class 444
15.2.5不銹鋼444級
15.2.6 SSLServerSocket類447
15 . 2 . 7 SSLEngine 448級
15.3創建基於SSL的安全服務器和安全客戶端453
15.4摘要457
練習題457
第16章CORBA 459簡介
16.1創建IDL接口460
16.2創建IDL接口實現類460
16.3創建服務器程序461
16.4創建客戶端程序462
16.5運行CORBA程序463
16.6摘要464
練習題465
第17章Web服務簡介467
17.1肥皂467簡介
17.2建立Apache AXIS環境469
17.3在Tomcat上發布
Apache-AXIS Web應用程序470
17.4創建SOAP服務471
17.4.1創建並提供SOAP。
Java服務等級471
17.4.2創建SOAP服務
發布描述符文件471
17.5管理SOAP服務472
17.5.1發布SOAP服務472
17.5.2刪除SOAP服務
17.6創建和運行SOAP
客戶端程序473
17.7發布JWS服務476
17.8匯總476
17.9練習477
附錄A如何運行本書的示例479
A.1本書使用的軟件下載地址479
A.2軟件安裝的壹部分479
A.2.1安裝JDK 480
A.2.2安裝ANT 480
A.2.3安裝Tomcat 481
A.3編譯源代碼481
A.4運行客戶/服務器程序482