aboutsummaryrefslogtreecommitdiffstats
path: root/P4/README.md
blob: 163e4396055df1462697945557565070f3e8fb00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# CSCI 4061: Project 4

The fourth project in CSCI 4061: Intro to Operating Systems.

## Fall 2020

- **Test machine:** atlas.cselabs.umn.edu
- **Date:** 12/10/2020
- **Name:** Andrea Smith, Matt Strapp
- **x500:** smit9523, strap012

The purpose of this program is to create a multi-threaded web server by using POSIX threads. In this project, we wrote the backend using POSIX sockets.

In order to run this program, compile with the included makefile (run ```make``` in the directory with no additional arguments). After that, run ```./web_server``` with the following additional arguments seperated by only a space (with no quotes or brackets):
[Port used (between 1025 and 65535)] [Web server directory] [Number of dispatch threads] [Number of worker threads] [Maximum worker queue length] [NOT IMPLEMENTED (Use 0)] [Maximum cache length]


#### Program structure

```init():```
Binds a port that the server can use to communicate with the outside world.

```accept_connection():```
Makes a one-time use socket for the connection.

```get_request()```
Takes the HTTP request and translates it to a file path that the server can use.

```return_result()```
Formats the return to the HTTP protocol and returns the successful request back to the client.

```return_error()```
Formats the return to the HTTP protocol and returns the unsuccessful request back to the client.


#### Team Contributions:

Matt wrote init(), return_result(), and return_error(). Andrea wrote accept_connection() and get_request().