Specification: Following the framing methods in slides that I have attached, implement a sender and a receiver that can support THREE framing methods: byte count, byte stuffing (flag byte is ESC), bit stuffing (flag bits are six 1s “111111”).
• The sender program accepts two user inputs: the first input represents the selection of which framing method and the second one is the original data to transmit.
• The receiver program accepts two user inputs: the first input represents the selection of which framing method and the second one is the received frame data.
Note: You are expected to have exception check, for example, a wrong user input of framing method is received, or a received frame does not match the specified framing method.