/Linux-Network-Programming

Samples to Linux network programming in Socket and I/O multiplexing, and capture packets to reveal the essence of computer network communication.(基于 Socket 和 I/O 多路复用的 Linux 网络编程示例,抓包揭示计算机网络通信本质)

Primary LanguageC++MIT LicenseMIT

Supported Platforms Build Status GitHub license

Documentation

Build and Run

  • build
git clone git@github.com:downdemo/Linux-Network-Programming.git
cd Linux-Network-Programming
make
  • Service would be generated in build directory
cd build
  • Run server before client
  • One running server at most because samples use the same port 12345
  • Ctrl + c to interrupt blocking server and client process
  • Run server
./udp_server
  • Run client in another shell
./udp_client
  • Run server
./socket_server
  • Run client
./socket_client
  • Run server
./fork_server
  • Run client multiple times
./fork_client
./fork_client
./fork_client
./fork_client
./fork_client
  • Run any I/O multiplexing server, such as epoll_server
./epoll_server
  • Run multiple I/O multiplexing clients
./select_client
./select_client
./poll_client
./poll_client
./epoll_client
./epoll_client