In this assignment you will have to develop a client-server application using stream socket API of Java This application is intended to support clients' ability to store "notes" on server, and to request "notes" that have certain properties Client will have to Request a connection with the server Send different types of messages through established connection: * 1. POST
2. GET , server will have to store the note described in part of the message 2. If message is GET , server must pin all relevant to , server must unpin all relevant to field in GET command has two forms. The first one is GET PINS which forces the server to supply a client with coordinates of all pins. All other requests have the following general form: color-color> contains referes To string For example GET color-white will force the server to supply a client with all "white" notes on the board GET contains 4 6 will force the server to supply a client with all notes that contain point with coordinates (4,6) GET contains 4 6 refersTo-Fred will force the server to supply a client with all notes that contain point with coordinates (4,6) and have substring "Fred" in the content Generall GET color-color> contains-data> referesTo= will force the server to supply client with information of all notes of the particular color that contain given by point and has substring in the content. If one of criterions is missing the semantics of request is ALL (for example, no color in GET means ALL colors) Implementation requirements. Server is a multithreaded Java console application that has multiple command line arguments and starts with empty "notes" dictionary. The arguments are in order: port number, , , ,. For example, if implementation of server is in successfully compiled file SBoard.java, then to start server in command line one can execute java SBoard 4554 200 100 red white green yellow which start the server ready to accept connections on port 4554, supporting the board 200 units wide and 100 units tall, accepting notes of the colors red, white, green or yellow (with red being default Every new client connected to the server will receive a list of available colors, and the dimension of the board of the board upon successful connection. Server's response to GET type of message is obvious. Server's response to POST type of messages has to confirm the receipt of the note (or send back an ERROR message). Error handling responsibilities naturally split between server and client and must be described in your document. Also note that the board exist only between server start and shutdown, and does not need to be stored. Client has to have a GUI. Minimal GUI requirements are Text field to provide IP address of the server Text field to provide port number . Connect/Disconnect button .Text area to type in text to be sent to server and POST button GET button with dialogue to enter required properties PIN/UNPIN button with a dialogue to supply coordinates Text area to display result of the request