Chapter 35 Further Reading
Official Documentation
- Free Pascal ssockets Unit — Documentation for TCP/UDP socket classes.
-
https://www.freepascal.org/docs-html/fcl/ssockets/index.html
-
Free Pascal fphttpclient Unit — Documentation for the HTTP client class.
-
https://www.freepascal.org/docs-html/fcl/fphttpclient/index.html
-
Lazarus Wiki: Networking — Community guides for socket programming, HTTP clients, and FTP in Free Pascal.
- https://wiki.lazarus-ide.org/Networking
Specifications
- RFC 9110: HTTP Semantics — The modern HTTP specification covering methods, status codes, headers, and content negotiation.
-
https://www.rfc-editor.org/rfc/rfc9110
-
RFC 6455: The WebSocket Protocol — The WebSocket specification for persistent, full-duplex communication.
- https://www.rfc-editor.org/rfc/rfc6455
Books
-
Stevens, W.R. (2003). UNIX Network Programming, Volume 1: The Sockets Networking API (3rd ed.). The definitive reference on socket programming. Written for C, but the concepts apply directly to Pascal's socket wrappers.
-
Fielding, R.T. (2000). "Architectural Styles and the Design of Network-based Software Architectures." Roy Fielding's doctoral dissertation that defined REST. Dense but foundational.
- https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
Third-Party Libraries
- Synapse — A popular Free Pascal networking library providing higher-level socket abstractions, SSL support, HTTP client/server, SMTP, POP3, and more.
-
http://www.ararat.cz/synapse/
-
lNet — Lightweight networking library for Free Pascal with event-driven (non-blocking) I/O.
-
https://github.com/almindor/lnet
-
mORMot — A comprehensive framework for Free Pascal/Delphi including REST server, ORM, and WebSocket support.
- https://github.com/synopse/mORMot2
Connecting to Other Languages
| Concept | Pascal | Python | Node.js | Go |
|---|---|---|---|---|
| TCP Socket | ssockets / TInetSocket |
socket module |
net module |
net package |
| HTTP Client | fphttpclient |
requests / urllib |
fetch / axios |
net/http |
| HTTP Server | Custom (MicroServe) | http.server / Flask |
Express.js | net/http |
| JSON | fpjson |
json module |
Built-in | encoding/json |
| WebSocket | Third-party (Synapse) | websockets |
ws package |
gorilla/websocket |
The socket APIs across all languages are remarkably similar because they all wrap the same underlying POSIX/BSD socket interface.