《TCP/IP网络互连技术 卷Ⅲ 客户/服务器编程和应用 Windows套接字版 英文版》求取 ⇩

Chapter 1 Introduction And Overview1

1.1 Use Of TCP/IP1

1.2 Designing Applications For A Distributed Environment2

1.3 Standard And Nonstandard Application Protocols2

1.4 An Example Of Standard Application Protocol Use2

1.5 An Example Connection3

1.6 Using TELNET To Access An Alternative Service4

1.7 Application Protocols And Software Flexibility5

1.8 Viewing Services From The Provider s Perspective6

1.9 The Remainder Of The Text7

1.10 Summary7

Chapter 2 The Client Server Model And Software Design9

2.1 Introduction9

2.2 Motivation10

2.3 Terminology And Concepts10

2.3.1 Clients And Servers10

2.3.3 Standard Vs.Nonstandard Client Software11

2.3.2 Privilege And Complexity11

2.3.4 Parameterization Of Clients12

2.3.5 Connectionless Vs.Connection-Oriented Servers13

2.3.6 Stateless Vs.Stateful Servers14

2.3.7 A Stateful File Server Example14

2.3.8 Statelessness Is A Protocol Issue16

2.3.9 Servers As Clients17

2.4 Summary18

Chapter 3 Concurrent Processing In Client-Server Software21

3.1 Introduction21

3.2 Concurrency In Networks22

3.3 Concurrency In Servers23

3.4 Terminology And Concepts24

3.4.1 The Process Concept25

3.4.2 Threads25

3.4.4 Procedure Calls26

3.4.3 Programs vs.Threads26

3.5.1 A Sequential C Example27

3.5 An Example Of Concurrent Thread Creation27

3.5.2A Concurrent Version28

3.5.3 Timeslicing30

3.6 Diverging Threads31

3.7 Context Switching And Protocol Software Design32

3.8 Concurrency And Asynchronous I/O32

3.9 Concurrency Under UNIX33

3.10 Executing A Separately Compiled Program34

3.11 Summary35

Chapter 4 Program Interface To Protocols37

4.1 Introduction37

4.2 Loosely Specified Protocol Software Interface37

4.2.1 Advantages And Disadvantages38

4.3 Interface Functionality38

4.5 Implementation Of An API39

4.4 Conceptual Interface Specification39

4.6 Two Basic Approaches To Network Communication41

4.7 The Basic I/O Functions Available In ANSI C42

4.8 History Of The UNIX Socket API43

4.9 Summary44

Chapter 5 The Socket API47

5.1 Introduction47

5.2 The History Of Sockets47

5.3 Specifying A Protocol Interface48

5.4 The Socket Abstraction49

5.4.1 Socket Descriptors49

5.4.2 System Data Structures For Sockets50

5.4.3 Using Sockets51

5.5 Specifying An Endpoint Address51

5.6 A Generic Address Structure52

5.7.1 The WSAStartup Function53

5.7 Functions In The Socket API53

5.7.2 The WSACleanup Function54

5.7.3 The Socket Function54

5.7.4 The Connect Function54

5.7.5 The Send Function54

5.7.6 The Recv Function55

5.7.7The Closesocket Function55

5.7.8 The Bind Function55

5.7.9The Listen Function55

5.7.10 The Accept Function56

5.7.11 Summary Of Socket Calls Used With TCP56

5.8 Utility Routines For Integer Conversion56

5.9 Using Socket Calls In A Program58

5.10 Symbolic Constants For Socket Call Parameters59

5.11 Summary59

6.2 Learning Algorithms Instead Of Details61

6.1 Introduction61

Chapter 6 Algorithms And Issues In Client Software Design61

6.3 Client Architecture62

6.4 Identifying The Location Of A Server62

6.5 Parsing An Address Argument64

6.6 Looking Up A Domain Name65

6.7Looking Up A Well-Known Port By Name66

6.8 Port Numbers And Network Byte Order66

6.9 Looking Up A Protocol By Name67

6.10 The TCP Client Algorithm67

6.11 Allocating A Socket68

6.12 Choosing A Local Protocol Port Number69

6.13 A Fundamental Problem In Choosing A Local IP Address69

6.14 Connecting A TCP Socket To A Server70

6.15 Communicating With The Server Using TCP70

6.16 Reading A Response From A TCP Cnnection71

6.17.2 A Partial Close Operation72

6.17.1 The Need For Partial Close72

6.17 Closing A TCP Connection72

6.18 Programming A UDP Client73

6.19 Connected And Unconnected UDP Sockets73

6.20 Using Connect With UDP74

6.21 Communicating With A Server Using UDP74

6.22 Closing A Socket That Uses UDP74

6.23 Partial Close For UDP75

6.24 A Warning About UDP Unreliability75

6.25 Summary75

Chapter 7 Example Client Software79

7.1 Introduction79

7.2 The Importance Of Small Examples79

7.3 Hiding Details80

7.4 An Example Procedure Library For Client Programs80

7.5 Implementation Of ConTCP81

7.7A Procedure That Forms Connections82

7.6 Implementation Of ConUDP82

7.8 Using The Example Library85

7.9 The DAYTIME Service85

7.10 Implementation Of A TCP Client For DAYTIME86

7.11 Reading From A TCP Connection87

7.12 The TIME Service88

7.13 Accessing The TIME Service88

7.14 Accurate Times And Network Delays89

7.15 A UDP Client For The TIME Service89

7.16The ECHO Service91

7.17 A TCP Client For The ECHO Service92

7.18 A UDP Client For The ECHO Service94

7.19 Summary96

Chapter 8 Aigorithms And Issues In Server Software Design99

8.1 Introduction99

8.2 The Conceptual Server Algorithm99

8.4 Connection-Oriented Vs.Connectionless Access100

8.3 Concurrent Vs.Iterative Servers100

8.5 Connection-Oriented Servers101

8.6 Connectionless Servers101

8.7 Failure , Reliability , And Statelessness102

8.8 Optimizing Stateless Servers103

8.9 Four Basic Types Of Servers105

8.10 Request Processing Time106

8.11 Iterative Server Algorithms106

8.12 An Iterative, Connection-Oriented Server Algorithm107

8.13 Binding To A Well-Known Address Using INADDR_ANY107

8.14 Placing The Socket In Passive Mode108

8.15 Accepting Connections And Using Them108

8.16 An Iterative , Connectionless Server Algorithm108

8.17 Forming A Reply Address In A Connectionless Server109

8.19 Master And Slave Threads110

8.18 Concurrent Server Algorithms110

8.20 A Concurrent, Connectionless Server Algorithm111

8.21 A Concurrent , Connection-Oriented Server Algorithm111

8.22 Using Separate Programs As Slaves112

8.23 Apparent Concurrency Using A Single Thread113

8.24 When To Use Each Server Type114

8.25 A Summary of Server Types115

8.27 Alternative Implementations116

8.26 The Important Problem Of Server Deadlock116

8.28 Summary117

Chapter 9 Iterative , Connectioniess Servers(UDP)119

9.1 Introduction119

9.2 Creating A Passive Socket119

9.3 Thread Structure122

9.4 An Example TIME Server123

9.5 Summary125

10.2 Allocating A Passive TCP Socket127

10.1 Introduction127

Chapter 10 Iterative , Connection-Oriented Servers(TCP)127

10.3 A Server For The DAYTIME Service128

10.4 Thread Structure128

10.5 An Example DAYTIME Server129

10.6 Closing Connections132

10.7 Connection Termination And Server Vulnerability132

10.8 Summary133

Chapter 11 Concurrent, Connection-Oriented Servers(TCP)135

11.1 Introduction135

11.2 Concurrent ECHO135

11.3 Iterative Vs.Concurrent Implementations136

11.4 Thread Structure136

11.5 An Example Concurrent ECHO Server137

11.6 Summary140

12.1 Introduction143

12.2 Data-driven Processing In A Server143

Chapter 12 Singly-Threaded, Concurrent Servers(TCP)143

12.3 Data-Driven Processing With A Single Thread144

12.4 Thread Structure Of A Singly-Threaded Server145

12.5 An Example Singly-Threaded ECHO Server146

12.6 Summary148

Chapter 13 Multiprotocol Servers(TCP,UDP)151

13.1 Introduction151

13.2 The Motivation For Reducing The Number Of Servers151

13.4 Thread Structure152

13.3 Multiprotocol Server Design152

13.5 An Example Multiprotocol DAYTIME Server153

13.6The Concept Of Shared Code157

13.7 Concurrent Multiprotocol Servers157

13.8 Summary157

Chapter 14 Multiservice Servers(TCP, UDP)159

14.1 Introduction159

14.2 Consolidating Servers159

14.3 A Connectionless, Multiservice Server Design160

14.4 A Connection-Oriented, Multiservice Server Design161

14.5 A Concurrent, Connection-Oriented, Multiservice Server162

14.6 A Singly-Threaded,Multiservice Server Implementation162

14.7 Invoking Separate Programs From A Multiservice Server163

14.8 Multiservice , Multiprotocol Designs164

14.9 An Example Multiservice Server165

14.10 Static and Dynamic Server Configuration171

14.11 An Example Super Server,Inetd172

14.12 Summary174

Chapter 15 Uniform,Efficient Management Of Server Concurrency177

15.1 Introduction177

15.2 Choosing Between An Iterative And A Concurrent Design177

15.3 Level Of Concurrency178

15.4 Demand-Driven Concurrency179

15.5 The Cost Of Concurrency179

15.6 Overhead And Delay179

15.7 Small Delays Can Matter180

15.8 Thread Preallocation181

15.8.1 Preallocation Techniques182

15.8.2 Preallocation In A Connection-Oriented Server182

15.8.3 Preallocation In A Connectionless Server183

15.8.4 Preallocation, Bursty Traffic, And NFS184

15.8.5 Preallocation On A Multiprocessor185

15.9 Delayed Thread Allocation185

15.10 The Uniform Basis For Both Techniques186

15.11 Combining Techniques187

15.12 Summary187

Chapter 16 Concurrency In Clients189

16.1 Introduction189

16.2 The Advantages Of Concurrency189

16.3 The Motivation For Exercising Control190

16.4 Concurrent Contact With Multiple Servers191

16.5 Implementing Concurrent Clients191

16.6 Singly-Threaded Implementations193

16.7 An Example Concurrent Client That Uses ECHO194

16.8 Execution Of The Concurrent Client198

16.9 Managing A Timer199

16.10 Example Output200

16.11 Concurrency In The Example Code200

16.12 Summary201

17.1 Introduction203

17.2 Multiprotocol Environments203

Chapter 17 Tunneling At The Transport And Application Levels203

17.3 Mixing Network Technologies205

17.4 Dynamic Circuit Allocation206

17.5 Encapsulation And Tunneling207

17.6 Tunneling Through An IP Internet208

17.7 Application-Level Tunneling Between Clients And Servers208

17.8 Tunneling, Encapsulation, And Dialup Phone Lines209

17.9 Summary210

18.2.1 The Reality Of Multiple Technologies213

18.2Clients And Servers In Constrained Environments213

Chapter 18 Application Level Gateways213

18.1 Introduction213

18.2.2 Computers With Limited Functionality214

18.2.3 Connectivity Constraints That Arise From Security214

18.3 Using Application Gateways215

18.4 Interoperability Through A Mail Gateway216

18.5 Implementation Of A Mail Gateway217

18.6 A Comparison Of Application Gateways And Tunneling217

18.7 Application Gateways And Limited Functionality Systems219

18.8 Application Gateways Used For Security220

18.9 Application Gateways And The Extra Hop Problem221

18.10 An Example Application Gateway223

18.11 Details Of A Web-Based Application Gateway224

18.12 Invoking A CGI Program225

18.14 A General-Purpose Application Gateway226

18.13 URLs For The RFC Application Gateway226

18.15 Operation Of SLIRP227

18.16 How SLIRP Handles Connections227

18.17 IP Addressing And SLIRP228

18.18 Summary229

Chapter 19 External Data Representation(XDR)231

19.1 Introduction231

19.2 Representations For Data In Computers231

19.3 The N-Squared Conversion Problem232

19.4 Network Standard Byte Order233

19.5 A De Facto Standard External Data Representation234

19.6 XDP Data Types235

19.7 Implicit Types236

19.8 Software Support For Using XDR236

19.9 XDR Library Routines236

19.10 Building A Message One Piece At A Time236

19.11 Conversion Routines In The XDR Library238

19.12 XDR Streams,I/O, and TCP240

19.13 Records, Record Boundaries, And Datagram I/O241

19.14 Summary241

Chapter 20 Remote Procedure Call Concept(RPC)243

20.1 Introduction243

20.2 Remote Procedure Call Model243

20.3 Two Paradigms For Building Distributed Programs244

20.4 A Conceptual Model For Conventional Procedure Calls245

20.5 An Extension Of the Procedural Model245

20.6 Execution Of Conventional Procedure Call And Return246

20.7 The Procedural Model In Distributed Systems247

20.8 Analogy Between Client-Server And RPC248

20.9 Distributed Computation As A Program249

20.10 Sun Microsystem s Remote Procedure Call Definition250

20.11 Remote Programs And Procedures250

20.13 Identifying Remote Programs And Procedures251

20.12 Reducing The Number Of Arguments251

20.14 Accommodating Multiple Versions Of A Remote Program252

20.15 Mutual Exclusion For Procedures In A Remote Program253

20.16 Communication Semantics254

20.17 At Least Once Semantics254

20.18 RPC Retransmission255

20.19 Mapping A Remote Program To A Protocol Port255

20.20 Dynamic Port Mapping256

20.21 RPC Port Mapper Algorithm257

20.22 RPC Message Format259

20.23 Marshaling Arguments For A Remote Procedure260

20.24 Authentication260

20.25 An Example Of RPC Message Representation261

20.26 An Example Of An Authentication Field262

20.27 Summary263

21.1 Introduction267

Chapter 21 Distributed Program Generation(Rpcgen Concept)267

21.2 Using Remote Procedure Calls268

21.3 Programming Mechanisms To Support RPC269

21.4 Dividing A Program Into Local And Remote Procedures270

21.5 Adding Code For RPC271

21.6 Stub Procedures271

21.7 Multiple Remote Procedures And Dispatching272

21.8 Name Of The Client-Side Stub Procedure273

21.10 Rpcgen Output And Interface Procedures274

21.9 Using Rpcgen To Generate Distributed Programs274

21.11 Rpcgen Input And Output275

21.12 Using Rpcgen To Build A Client And Server276

21.13 Summary276

Chapter 22 Distributed Program Generation(Rpcgen Example)279

22.1 Introduction279

22.2 An Example To Illustrate Rpcgen280

22.3 Dictionary Look Up280

22.4 Eight Steps To A Distributed Application281

22.5 Step 1 : Build A Conventional Application Program282

22.6 Step 2 : Divide The Program Into Two Parts286

22.7 Step 3 : Create An Rpcgen Specification292

22.8 Step 4 : Run Rpcgen294

22.9 The.h File Produced By Rpcgen294

22.10 The XDR Conversion File Produced By Rpcgen296

22.11 The Client Code Produced By Rpcgen297

22.12 The Server Code Produced By Rpcgen298

22.13 Step 5 : Write Stub Interface Procedures301

22.13.1 Client-Side Interface Routines301

22.13.2 Server-Side Interface Routines304

22.14 Step 6 : Compile And Link The Client Program305

22.15 Step 7 : Compile And Link The Server Program309

22.16 Step 8 : Start The Server And Execute The Client311

22.17 Summary311

23.2 Remote File Access Vs.Transfer313

Chapter 23 Network File System Concepts(NFS)313

23.1 Introduction313

23.3 Operations On Remote Files314

23.4 File Access Among Heterogeneous Computers314

23.5 Stateless Servers315

23.6 NFS And UNIX File Semantics315

23.7 Review Of The UNIX File System315

23.7.1 Basic Definitions315

23.7.2 A Byte Sequence Without Record Boundaries316

23.7.3 A File s Owner And Group Identifiers316

23.7.4 Protection And Access316

23.7.5 The UNIX Open-Read-Write-Close Paradigm318

23.7.6 UNIX Data Transfer319

23.7.7 Permission To Search A Directory319

23.7.8 UNIX Random Access320

23.7.9 Seeking Beyond The End Of A UNIX File320

23.7.10 UNIX File Position And Concurrent Access321

23.7.11 Semantics Of Write During Concurrent Access322

23.7.12 UNIX File Names And Paths322

23.7.13 The UNIX Inode : Information Stored With A File323

23.7.14 The UNIX Stat Operation324

23.7.15 The UNIX File Naming Mechanism325

23.7.16 UNIX File System Mounts326

23.7.17 UNIX File Name Resolution328

23.8 Files Under NFS329

23.7.18 UNIX Symbolic Links329

23.9 NFS File Types330

23.10 NFS File Modes330

23.11 NFS File Attributes331

23.12 NFS Client And Server332

23.13 NFS Client Operation333

23.14 NFS Client And UNIX334

23.15 NFS Mounts335

23.17 NFS Handles Replace Path Names336

23.16 File Handle336

23.18 An NFS Client Under Windows338

23.19 File Positioning With A Stateless Server338

23.20 Operations On Directories339

23.21 Reading A Directory Statelessly339

23.22 Multiple Hierarchies In An NFS Server340

23.23 The Mount Protocol340

23.24 Summary341

Chapter 24 Network File System Protocol(NFS,Mount)343

24.1 Introduction343

24.2 Using RPC To Define A Protocol343

24.3 Defining A Protocol With Data Structures And Procedures344

24.4 NFS Constant,Type, And Data Declarations345

24.4.1 NFS Constants345

24.4.2 NFS Typedef Declarations346

24.4.3 NFS Data Structures346

24.5 NFS Procedures348

24.6 Semantics Of NFS Operations349

24.6.1 NFSPROC_NULL(Procedure 0)350

24.6.2 NFSPROC_GETATTR(Procedure1)350

24.6.3 NFSPROC_SETATTR(Procedure2)350

24.6.4 NFSPROC_ROOT(Procedure3)[Obsolete in NFS3]350

24.6.5 NFSPROC_LOOKUP(Procedure4)350

24.6.6 NFSPROC_READLINK(Procedure 5)350

24.6.7 NFSPROC_READ(Procedure 6)350

24.6.8NFSPROC_WRITECACHE(Procedure7)[Obsolete in NFS 3]350

24.6.9 NFSPROC_WRITE(Procedure 8)351

24.6.10 NFSPROC_CREATE(Procedure 9)351

24.6.11 NFSPROC_REMOVE(Procedure 10)351

24.6.12 NFSPROC_RENAME(Procedure 11)351

24.6.13 NFSPROC_LINK(Procedure 12)351

24.6.14 NFSPROC_SYMLINK(Procedure 13)351

24.6.18 NFSPROC_STATFS(Procedure 17)352

24.6.17 NFSPROC_READDIR(Procedure 16)352

24.6.15 NFSPROC_MKDIR(Procedure 14)352

24.6.16 NFSPROC_RMDIR(Procedure 15)352

24.7 The Mount Protocol353

24.7.1 Mount Constant Definitions353

24.7.2 Mount Type Definitions353

27.7.3 Mount Data Structures354

24.8 Procedures In The Mount Protocol355

24.9 Semantics of Mount Operations355

24.9.1 MNTPROC_NULL(Procedure 0)355

24.9.2 MNTPROC_MNT(Procedure 1)355

24.9.3 MNTPROC_DUMP(Procedure 2)356

24.9.4 MNTPROC_UMNT(Procedure 3)356

24.9.5 MNTPROC_UMNTALL(Procedure 4)356

24.9.6 MNTPROC_EXPORT(Procedure 5)356

24.10 NFS And Mount Authentication356

24.11 Changes In NFS Version 3358

24.12 Summary359

Chapter 25 A TELNET Client(Program Structure)361

25.1 Introduction361

25.2 Overview362

25.2.1 The User s Terminal362

25.2.2 Command And Control Information362

25.2.3 Terminals, Windows,and Files362

25.2.4 The Need For Concurrency363

25.3 A TELNET Client Algorithm364

25.2.5 A Thread Model For A TELNET Client364

25.4 keyboard I/O In Windows365

25.5 Global Variables Used For Keyboard Control366

25.6 Initializing The Keyboard Thread367

25.7 Finite State Machine Specification370

25.8 Embedding Commands In A TELNET Data Stream370

25.9 Option Negotiation371

25.11 TELNET Character Definitions372

25.10 Request/Offer Symmetry372

25.12 A Finite State Machine For Data From The Server373

25.13 Transitions Among States374

25.14 A Finite State Machine Implementation376

25.15 A Compact FSM Representation376

25.16 Keeping The Compact Representation At Rum-Time378

25.17 Implementation Of A Compact Representation378

25.18 Building An FSM Transition Matrix380

25.19 The Socket Output Finite State Machine382

25.20 Definitions For The Socket Output FSM384

25.21 The Option Subnegotiation Finite State Machine385

25.22 Definitions For The Option Subnegotiation FSM386

25.23 FSM Initialization387

25.24 Arguments For The TELNET Client387

25.25 The Heart Of The TELNET Client389

25.26 TELNET Synchronization391

25.27 Handling A Severe Error392

25.28 Implementation Of The Main FSM393

25.29 A Procedure For immediate Disconnection394

25.30 Abort Procedure395

25.31 Summary395

nt(Implementation Details)399

26.1 Introduction399

26.2 The FSM Action Procedures399

26.3 Recording The Type Of An Option Request400

26.4 Performing No Operation401

26.5 Responding To WILL/WONT For The Echo Option401

26.6 Sending A Response402

26.7 Responding To WILL/WONT For Unsupported Options403

26.8 Responding TO WILL/WONT For The No Go-Ahead Option404

26.9 Generating DO/DONT For Binary Transmission405

26.10 Responding To DO/DONT For Unsupported Options406

26.11 Responding To DO/DONT For Transmit Binary Option406

26.12 Responding TO DO/DONT For The Terminal Type Option408

26.13 Option Subnegotiation409

26.14 Sending Terminal Type Information410

26.15 Terminating Subnegotiation412

26.16 Sending A Character To The Server412

26.17 Displaying Incoming Data On The User s Terminal414

26.18 Writing A Block Of Data TO The Server417

26.19 Interacting With The Local Client418

26.20 Responding To Illegal Commands419

26.21 Scripting To A File419

26.22 Implementation Of Scripting420

26.23 Initialization Of Scripting420

26.24 Collecting Characters Of The Script File Name421

26.25 Opening A Script File422

26.27 Printing Status Information425

26.28 Summary426

27.2 Operating In Background429

Chapter 27 Porting Servers From UNIX To Windows429

27.1 Introduction429

27.3 Shared Descriptors And Inheritance431

27.4 The Controlling TTY431

27.5 Working Directories432

27.6 File Creation And Umask432

27.7 Process Groups433

27.8 Descriptors For Standard I/O433

27.9 Mutual Exclusion For A Server434

27.10 Recording A Process ID434

27.11 Waiting For A Child Process TO Exit435

27.12 Using A System Log Facility435

27.12.1 Generating Log Messages435

27.13 Miscellaneous incompatibilities437

27.14 Summary438

28.1 Introduction441

Chapter 28 Deadlock And Starvation In Client-Server Systems441

28.2 Definition Of Deadlock442

28.3 Difficulty Of Deadlock Detection442

28.4 Deadlock Avoidance443

28.5 Deadlock Between A Client And Server443

28.6 Avoiding Deadlock in A single interaction444

28.7 Starvation Among A Set Of Clients And A Server444

28.8 Busy Connections And Starvation445

28.10 Threads, Connections, And Other Limits446

28.9 Avoiding Blocking Operations446

28.11 Cycles Of Clients And Servers447

28.12 Documenting Dependencies447

28.13 Summary448

Appendix 1 Functions And Library Routines Used With Sockets451

Appendix 2 Manipulation Of Windows Socket Descriptors485

Bibliography489

Index499

1998《TCP/IP网络互连技术 卷Ⅲ 客户/服务器编程和应用 Windows套接字版 英文版》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)(D.E.科默)Douglas E.Comer,(美) 1998 北京:清华大学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。

高度相关资料

TCP/IP网络互连技术  卷3  客户/服务器编程和应用 BSD套接字版 英文版·第2版(1998 PDF版)
TCP/IP网络互连技术 卷3 客户/服务器编程和应用 BSD套接字版 英文版·第2版
1998 北京:清华大学出版社
ATM互连网络技术及应用( PDF版)
ATM互连网络技术及应用
TCP/IP网络原理与技术(1993 PDF版)
TCP/IP网络原理与技术
1993
UNIX 网络编程 卷1:连网的 API:套接字与 XTI 第2版(1998年07月第1版 PDF版)
UNIX 网络编程 卷1:连网的 API:套接字与 XTI 第2版
1998年07月第1版 清华大学出版社
Windows NT——网络连接(1998年05月第1版 PDF版)
Windows NT——网络连接
1998年05月第1版 机械工业出版社
用TCP/IP进行网际互连 第3卷:客户机-服务器编程和应用(第2版)(1998年06月第1版 PDF版)
用TCP/IP进行网际互连 第3卷:客户机-服务器编程和应用(第2版)
1998年06月第1版 电子工业出版社
TCP/IP网络原理与技术(1993 PDF版)
TCP/IP网络原理与技术
1993 北京:清华大学出版社
计算机互联网络技术与TCP/IP协议(1991 PDF版)
计算机互联网络技术与TCP/IP协议
1991 北京:海洋出版社
TCP/IP网络管理(1997 PDF版)
TCP/IP网络管理
1997 北京:电子工业出版社
客户/服务器应用程序开发指南  修订版(1995 PDF版)
客户/服务器应用程序开发指南 修订版
1995 北京:电子工业出版社
TCP/IP与网络互联技术(1998 PDF版)
TCP/IP与网络互联技术
1998 北京:电子工业出版社
UNIX网络编程 卷1 连网的API  套接字与XTI  第2版  英文(1998 PDF版)
UNIX网络编程 卷1 连网的API 套接字与XTI 第2版 英文
1998 北京:清华大学出版社
TCP/IP连网技术 IBM网络环境指南(1996 PDF版)
TCP/IP连网技术 IBM网络环境指南
1996 北京:电子工业出版社
Windows 95 与 Windows NT网络连接技术(1997 PDF版)
Windows 95 与 Windows NT网络连接技术
1997 北京:科学出版社;龙门书局
TCP/IP网络互连技术  卷1  原理,协议和体系结构 英文版·第3版(1998 PDF版)
TCP/IP网络互连技术 卷1 原理,协议和体系结构 英文版·第3版
1998 北京:清华大学出版社