Homework
Go to file
ubuntu201711081 355411acaf add SLOW_SERVER 2020-12-08 05:06:17 +00:00
.vscode add server progress bar 2020-12-07 17:59:11 +00:00
testdata add client thread 2020-12-06 09:50:13 +00:00
.gitignore add bash script for test 2020-12-06 06:42:27 +00:00
LICENSE Initial commit 2020-12-04 07:28:31 +09:00
Makefile add server progress bar 2020-12-07 17:59:11 +00:00
README.md add SLOW_SERVER 2020-12-08 05:06:17 +00:00
client.c add server progress bar 2020-12-07 17:59:11 +00:00
display_bar.c fix display bar bug 2020-12-08 04:55:21 +00:00
display_bar.h add server progress bar 2020-12-07 17:59:11 +00:00
hw12.c add base 2020-12-03 23:06:26 +00:00
p-client.c chg high resolusion timer 2020-12-05 18:45:00 +00:00
p-server.c add TRACE p-server 2020-12-07 10:05:19 +00:00
server.c add SLOW_SERVER 2020-12-08 05:06:17 +00:00
simple_circular_buffer.h add threadpool server 2020-12-05 01:30:30 +00:00
socket_wrapper.c add threadpool server 2020-12-05 01:30:30 +00:00
socket_wrapper.h add macro to change setting 2020-12-04 08:33:41 +00:00
test.sh fix some bug 2020-12-06 12:26:38 +00:00
timerhelper.h add server USE_TRACE 2020-12-06 15:26:59 +00:00

README.md

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
  • -t [number] or --thread [number] :set to thread number.
  • -q or --quiet :no stdout

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)
  • USE_TRACE
  • USE_NO_QUEUE
  • SLOW_SERVER(microsecond unit): if turn on sendfile option, DEFAULT_SEND_FILE_CHUNK_SIZE/SLOW bytes/usec, otherwise (buf_size/SLOW_CLIENT) bytes/usec

For client

  • MUL_CLIENT(second unit)
  • SLOW_CLIENT(microsecond unit, (buf_size/SLOW_CLIENT) bytes/usec)

For both

  • TIMEOUT: 5(second unit)
  • MAX_TERMINAL_ROW
  • DEFAULT_PROGRESS_BAR_WIDTH: 30