object-oriented
split code to multi-files
support udp and tcp server