Homework
.vscode | ||
testdata | ||
.gitignore | ||
client.c | ||
hw12.c | ||
LICENSE | ||
Makefile | ||
p-client.c | ||
p-server.c | ||
pctest.sh | ||
README.md | ||
server.c | ||
simple_circular_buffer.h | ||
socket_wrapper.c | ||
socket_wrapper.h | ||
test.sh |
HW12
Homework
To build source, you should install build-essential
.
Usage:
./server [OPTION]...
./client SERVERNAME PORT [option] [FILENAME]...
Server OPTION and arguments:
-p port
:set to port binding. couldn't set to 0-h
or--help
:print help message.
Client option and arguments:
-b
or--benchmark
:benchmark mode-nv
or--no-verbose
:no progress bar
Available macro:
For server
- DEFAULT_MAX_LISTEN_SOCKET: 16
- DEFAULT_SERVER_PORT: 9091
- DEFAULT_MAX_PATH_SIZE: 256(must be less than 1000)
- USE_SENDFILE
- DEFAULT_SEND_FILE_CHUNK_SIZE: 0x100000(1MB)
- DEFAULT_WORK_QUEUE_SIZE(server only): 10
- DEFAULT_MAX_THREAD_NUMBER(server only): 10
- DEFAULT_RESPONSE_REQUEST(p-server only): 3(-1 is INF)
For client
- MUL_CLIENT(second unit)
- SLOW_CLIENT(microsecond unit, (buf_size/SLOW_CLIENT) bytes/usec)
- DEFAULT_PROGRESS_BAR_WIDTH: 30
For both
- TIMEOUT: 5(second unit)