1
0
mirror of https://github.com/fumiama/simple-dict.git synced 2026-06-05 10:10:26 +08:00
Go to file
2021-05-04 00:20:19 +08:00
2021-02-17 14:52:33 +08:00
2021-02-17 14:32:30 +08:00
2021-02-16 12:24:01 +08:00
2021-03-21 15:54:05 +08:00
2021-05-04 00:20:19 +08:00

simple-dict-server

database["key"]="value"

Compile

You should first clone this project into a system with cmake & libpthread installed. If you plan to compile it on Windows, you should edit the source code and transform socket/thread/file libraries into Windows version.

git clone https://github.com/fumiama/simple-dict-server.git

Create a build folder.

cd simple-dict-server
mkdir build

Use cmake command to generate files for make automatically.

cd build
cmake ../

Use make to generate executable binary files named simple-dict-server and simple-dict-client in ./build directory.

make

Execute

Start server on localhost using the commands below.

chmod +x simple-dict-server simple-dict-client
./simple-dict-server -d 7777 1 ./dict.bin    # use -d to start as daemon

Open another shell to connect to it.

./simple-dict-client 127.0.0.1 7777

Now you have connected to the server. Type fumiama and press enter in 10 seconds to get the read/write access. You can modify the password in source code as you like. Please note that the server will only wait 10 seconds for a response after the last communication. The box below shows how to control the server to accompilsh basic add/del/find/edit operations.

break!
Get sockfd
Connected to server
Welcome to simple dict server.
Thread create succeeded
Enter command:fumiama
Enter command:set     #set a key-value pair
Recv 3 bytes: set
Enter command:test    #key
Recv 4 bytes: data
Enter command:测试    #value
Recv 4 bytes: succ
Enter command:get     #get a value using key
Recv 3 bytes: get
Enter command:test
Recv 6 bytes: 测试
Enter command:del     #delete a key
Recv 3 bytes: del
Enter command:test
Recv 4 bytes: succ
Enter command:get
Recv 3 bytes: get
Enter command:test
Recv 4 bytes: null
Enter command:set
Recv 3 bytes: set
Enter command:test
Recv 4 bytes: data
Enter command:测试
Recv 4 bytes: succ
Enter command:lst   #list all keys that match the pattern
Recv 3 bytes: lst
Enter command:t     #pattern
Recv 5 bytes: test

Enter command:quit
Enter command:^C

You can also use cat command to get the raw data directly.

break!
Get sockfd
Connected to server
Welcome to simple dict server.
Thread create succeeded
Enter command:fumiama
Enter command:cat
Recv 131 bytes: 128test测试
Enter command:quit
Enter command:^C

The raw data starts with an integer showing its size, following all binary data in ./dict.bin.

Android Client for simple-dict-server

There is also an Android Client for simple-dict-server. Just install the apk file downloaded from release page and click config icon to set your server address using the format

127.0.0.1:7777_password

Note that this APP is designed for a new language called Tenenja, so the font inside is abnormal. What's more, there is no English translation for this APP because its users are Chinese. If you want to get an APP in your language, just edit the source code for free.

Languages
C 95.5%
CMake 3.1%
Dockerfile 1.4%