- 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 UDP sample
- Run server
./udp_server
- Run client in another shell
./udp_client
Run socket sample
- Run server
./socket_server
- Run client
./socket_client
Run fork sample
- 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
- Ethernet:RFC 894, A Standard for the Transmission of IP Datagrams over Ethernet Networks
- ARP:RFC 826, An Ethernet Address Resolution Protocol
- PPP:RFC 1661, The Point-to-Point Protocol (PPP)
- PPPoE:RFC 2516, A Method for Transmitting PPP Over Ethernet (PPPoE)
- ICMPv4:RFC 792, INTERNET CONTROL MESSAGE PROTOCOL
- ICMPv6:RFC 2463, Internet Control Message Protocol (ICMPv6)
- IPv4:RFC 791, INTERNET PROTOCOL
- IPv6:RFC 8200, Internet Protocol, Version 6 (IPv6) Specification
- IGMPv3:RFC 3376, Internet Group Management Protocol, Version 3
- IPSec:RFC 2401, Security Architecture for the Internet Protocol
- PPTP:RFC 2637, Point-to-Point Tunneling Protocol (PPTP)
- L2TP:RFC 2661, Layer Two Tunneling Protocol "L2TP"
- TCP:RFC 793, TRANSMISSION CONTROL PROTOCOL
- UDP:RFC 768, User Datagram Protocol
- SOCKS5: RFC 1928, SOCKS Protocol Version 5
- PNG:RFC 2083, PNG (Portable Network Graphics) Specification Version 1.0
- JSON:RFC 7159, The JavaScript Object Notation (JSON) Data Interchange Format
- SIP:RFC 3261, SIP: Session Initiation Protocol
- RTP:RFC 3550, RTP: A Transport Protocol for Real-Time Applications
- TLS 1.3:RFC 8446, The Transport Layer Security (TLS) Protocol Version 1.3
- HTTP/1.1:RFC 7230, Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
- HTTP/2:RFC 7540, Hypertext Transfer Protocol Version 2 (HTTP/2)
- QUIC:RFC 9000, QUIC: A UDP-Based Multiplexed and Secure Transport
- HTTPS:RFC 2818, HTTP Over TLS
- WebSocket:RFC 6455, The WebSocket Protocol
- TELNET:RFC 854, TELNET PROTOCOL SPECIFICATION
- SSH:RFC 4254, The Secure Shell (SSH) Connection Protocol
- DNS:RFC 1034, DOMAIN NAMES
- DHCP:RFC 2131, Dynamic Host Configuration Protocol
- NTP:RFC 1305, Network Time Protocol (Version 3)
- FTP:RFC 959, FILE TRANSFER PROTOCOL (FTP)
- NFSv4.2:RFC 7862, Network File System (NFS) Version 4 Minor Version 2 Protocol
- NNTP:RFC 977, Network News Transfer Protocol
- POP3:RFC 1939, Post Office Protocol - Version 3
- IMAP4:RFC 1730, INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4
- SMTP:RFC 2821, Simple Mail Transfer Protocol