High Level Approach: I have used this website (https://realpython.com/python-sockets/#echo-client) for learning how to create socket in Python. Then looking at the project description, I looked through this website (https://docs.python.org/2/library/argparse.html) for creating parser for command-line input. Then the main structure of the program is shaped. I then filled in with different conditions and functions that can check validity of the messages and exchange them between the server and the client.
Challenges: I have had a hard time in the beginning to search for how to actually create socket in Python. I have had a hard time listing all the conditions for different incorrect form of messages being returned. I have encountered some difficulties to run the code with the exact command-line that has been asked for.
Test: I have inserted different print() function in between code while testing, just to see if I get all the functions right. And then I also run the code on Khoury machine just to make sure it also works there.