Network Programming

In the Github repository Computer Networks, you can find the implementation of several network applications, using Linux socket:
Endianness used in Operating Systems and Network Byte Order.
Evaluation of endianness of the system.
Convertion of number from Host to Network Byte Order.
Implementation of HTTP protocol using TCP socket.
Web Client
Web Client HTTP/0.9
Web Client HTTP/1.0
Web Client HTTP/1.1
Web Client with caching implemented using Last-Modified header and HEAD method
Web Client with caching implemented using If-Modified-Since header
Web Proxy
HTTPS (4-Level Gateway) and HTTP (7-Level Gateway) management
Keep-alive and close connections together
Blacklist mangement for some domains
Filter of type of content of the response
Limit of the average bitrate in HTTPS connection
Limit of the average bitrate in HTTPS connection (alternative version)
Limit the maximum bitrate in HTTPS connection
Whitelist management of some domains
Web Server
Standard version with also management of function calls
Web Server with both versions of caching management
Web Server with Transfer-Encoding:chunked header
Web Server with Content-Length header
Web Server that replies with message of client, with additional info about client
Base64 implementation.
Implementation of Ethernet Packets using socket.
ARP (Address Resolution Protocol)
Inverse ping
Ping
Record route option of IP header
Split ICMP ECHO REQUEST in two packets
Statistics about number of received packets
TCP request and response
ICMP Time exceeded message management
Traceroute
ICMP Unreachable destination message management
Last updated