client-server application that allows clients to store data on the server in JSON format.
- JSON (Gson)
- Sockets
- Multithreading (threads, executors, synchronization, shared data)
- Collections framework (list, set and map interfaces)
- Design patterns (command)
- Reading and writing files
- Input and output streams
- JCommander
- Maven
to build the project
mvn clean package
this should generate two jars in the target
folder:
server-jar-with-dependencies.jar
client-jar-with-dependencies.jar
first run the server
java -jar target/server-jar-with-dependencies.jar
then run the client with the request args
java -jar target/client-jar-with-dependencies.jar -t set -k "some key" -v "some value"
or with a file containing the request as json, for example a file set.json
has the following content:
{
"type": "set",
"key": "some key",
"value": "some value"
}
java -jar target/client-jar-with-dependencies.jar -in set.json
the output should be something like
Sent: {
"type": "set",
"key": "some key",
"value": "some value"
}
Received: {
"response": "OK"
}
option | description |
---|---|
-t | Type of the request (set, get, delete, exit) |
-k | Record key |
-v | Value to add |
-in | File containing the request as json |