Day53 - UNIX Domain Socket IPC¶
Objective¶
Build a local IPC middleware daemon using:
- AF_UNIX socket
- epoll
- multi-client dispatcher
/dev/mypoll- kernel event broadcast
Environment¶
Platform¶
- Raspberry Pi 5
- Debian Linux
- UNIX domain socket
Directory Structure¶
Build Userspace Applications¶
Native build¶
Cross compile for Raspberry Pi 5¶
Start Server¶
Expected:
Connect Using Client¶
Expected:
Connect Using netcat¶
Test commands:
Multi-Client Test¶
Open multiple clients¶
Expected:
- multiple client connections
- independent event handling
- no dispatcher blocking
Broadcast Test¶
Terminal 1¶
Terminal 2¶
Terminal 3¶
Expected:
- all connected clients receive event
Backpressure Test¶
Modify client to continuously send commands:
Expected:
- TX queue full
- EPOLLIN disabled temporarily
- dispatcher remains alive
- no server crash
Verify /dev/mypoll Integration¶
Start timer¶
Expected:
Then periodic events should appear.
Event Flow Verification¶
Expected architecture:
client command
↓
server parser
↓
write(/dev/mypoll)
↓
kernel event
↓
epoll dispatcher
↓
broadcast
↓
all clients
Cleanup¶
Remove socket file: