update readme
This commit is contained in:
parent
f7ff770b67
commit
deb1ef87f9
47
REAMDE.md
47
REAMDE.md
@ -1,3 +1,48 @@
|
||||
# socket-samples
|
||||
|
||||
A simple repo with examples of python sockets
|
||||
Socket programming examples in strict C90 and modern Python3.
|
||||
|
||||
## Build & Run C90 Examples
|
||||
|
||||
```
|
||||
make clean && make all
|
||||
```
|
||||
Builds 9 binaries in `build/` (strict `-std=c90 -pedantic -Wall -Wextra -Werror`).
|
||||
|
||||
Port: **9999**
|
||||
|
||||
All use the same **custom binary protocol**:
|
||||
- Header: `1-byte type + 2-byte BE16 length`
|
||||
- Types: `PING(0x01)`, `PONG(0x02)`, `METRIC_REQ(0x03)`, `METRIC_RESP(0x04)`, `SUBSCRIBE(0x05)`, `PUSH(0x06)`, `UNSUB(0x07)`, `ERROR(0xFF)`
|
||||
- Metrics: `cpu`, `memory`, `disk`, `loadavg`, `uptime` (simulated)
|
||||
|
||||
### C90 Clients
|
||||
- `src/c90/metric_client.c`: Basic interactive TCP client (ping/get/quit).
|
||||
- `src/c90/metric_client_ansi.c`: Advanced TCP client w/ `select()` + unsubscribe.
|
||||
- `src/c90/metric_client_sub.c`: TCP client w/ live subscribe/push via `select()`.
|
||||
- `src/c90/metric_client_udp.c`: Full-featured UDP client (get/sub/unsub).
|
||||
- `src/c90/perf_client_udp.c`: UDP perf tester (`--flood` or subscribe mode, 30s throughput).
|
||||
|
||||
### C90 Servers
|
||||
- `src/c90/metric_server.c`: Iterative TCP server (single client).
|
||||
- `src/c90/metric_server_fork.c`: Forking TCP server (multi-client).
|
||||
- `src/c90/metric_server_fork_sub.c`: Forking TCP server w/ subscribe/push.
|
||||
- `src/c90/metric_server_udp.c`: UDP server w/ subscriber management (`select()`).
|
||||
|
||||
## Python Examples
|
||||
|
||||
Run: `python3 src/python/<file>.py [host [port]]`
|
||||
|
||||
Port: **9999** (metrics), **65432** (echo)
|
||||
|
||||
### Echo (text protocol)
|
||||
- `src/python/echo_client.py`: Interactive TCP echo client.
|
||||
- `src/python/echo_server.py`: Iterative TCP echo server.
|
||||
|
||||
### Metrics (same binary protocol as C90)
|
||||
- `src/python/metric_client.py`: Threaded TCP client (ping/get).
|
||||
- `src/python/metric_server.py`: Threaded multi-client TCP server.
|
||||
|
||||
### Monitor (advanced w/ subscribe/push)
|
||||
- `src/python/mon_client.py`: Full TCP client (ping/get/sub).
|
||||
- `src/python/mon_server.py`: Threaded TCP server w/ subscribe/push support.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user