Done in partial fulfillment of the course Network Programming(netprog), IS F462, BITS Pilani, Pilani.
1. Local Shell : UNIX Programming : Fork, Processes
We implement a basic bash-like shell with support for job control, process chaining using pipes, input-output redirection, and some custom commands such as double pipes, triple pipes and shortcut mode.[probem statement][design statement]
2. Cluster Shell : UNIX Programming : TCP Sockets
We implement a cluster shell with support for process chaining using pipes, use of * operator, and cd command.[probem statement][design statement]
3. Group Messaging System : UNIX Programming : System V Message Queues
We implement a group messaging system using message queues with support for creating, joining and listing groups, sending and receiving messages to and from private users and groups and auto delete messages.[probem statement][design statement]
1. Dummy Ping System Utility - RTT : UNIX Programming : Raw Sockets
We implement a ping system utility for IPv4 and IPv6 addresses, with features of simultaneous RTT calculations for a bulk of IP addresses, using I/O multiplexing.[probem statement][design statement]
2. Preforked Server Model : UNIX Programming : Server Models
We implement a preforked server model with dynamic handling of child servers to balance the traffic, with the help of UNIX domain sockets for inter-process communication.[probem statement][design statement]
3. Group Messaging on LAN : UNIX Programming : Multicasting, Broadcasting
We implement a P2P group messaging system for LAN users using multicasting and broadasting, with support for creating, joining and listing groups, sending and receiving messages, and filelists.[probem statement][design statement]
Small Lab Exercises as given in the problem statements are also implemeted as a part of the course.[1][2][3]