Part III Introduction to Sockets 19 Indy in Depth I Part IV Introduction to Indy 28 Part V Blocking vs Non-Blocking 31 Part VI Introduction to Clients 38 Part VII UDP 44 Part VIII Reading and Writing 52 Indy in Depth III Part IX Detecting Disconnects 62 Part X Implementing Protocols 68 Part XI Proxies 79 Part XII IOHandlers 83 Part XIII Intercepts 87 Part XIV Debugging 90 Part XV Concurrency 92 Indy in Depth V Part XVI Threads 100 Part XVII Servers 108 Part XVIII SSL - Secure Sockets 126 Part XIX Indy 10 Overview 130 Indy in Depth VII Part XX Bonus Materials 141 Part XXI About the Authors 152
Why use Assembler ? I have always found Object Pascal to produce fast and efficient code, add to this the Rapid Development Environment of Delphi, and the need to use assembler becomes questionable. In all of my work with Delphi, I have come across just two situations where I have felt one should consider the use of low level code. (1) Processing large quantities of data. Nb. I exclude from this any situation where a data query language is employed. For reasons of compatibility one should not tinker. (2) High speed display routines. Nb. I refer here to quick easy routines that sit well with pascal, not the esoteric C++ headers, external function libraries and hardware demands of DirectX. I hope to introduce an example or two by the end of this article which meet the above criteria, and in doing so demonstrate not only how and when to use assembler, but also the seamless manner in which Delphi incorporates this code.