Demos describtion
-----------------
Windows Reactor and FreeBSD Reactor only support Level Triggered; Linux
Reactor can support Level Triggered and Edge Triggered.
1. simple_udp
UDP server and client, which use blocking socket io.
2. simple_tcp
TCP serve and client, which directly use blocking socket io.
3. nonb_tcp_client
Implement multiple nonblocking tcp clients using nonblocking Connector and Level
Triggeredd Reactor.
4. common_tcp_server
A common tcp server which uses Level Triggered Reactor and blocking io.
Because using blocking io, sending may be blocked. Advise that sending
data runs a child thread.
5. let_tcp_server(let:Linux Edge Triggered)
Note this demo only support Linux!
Use Edge Triggered Reactor on Linux and nonblocking io.
6. fb_tcp_server(fb:FreeBSD)
Note this demo only support FreeBSD, because using the feature of FreeBSD::kqueue!
Use Level Triggered Reactor on FreeBSD and blocking io. This demo will describe usage
about the param availBytes in EventHandler(int availBytes). In addition, this demo will
use EventHandler::WRITE_MASK to send data automatically.
Summary of 4,5,6'Servers
-------------------------
OS W: Windows L: Linux F: FreeBSD A:All
Triggered L: Level-Triggered E: Edge-Triggered
IO B: Blocking N: Nonblocking
Server OS Triggered IO
-------------------------------------
4 A L B
5 L E N
6 F L B
-------------------------------------