Skip to content

Latest commit

 

History

History
90 lines (62 loc) · 2.05 KB

README.md

File metadata and controls

90 lines (62 loc) · 2.05 KB

Custom Web server

This is a pure Java implementation of a multithreaded web server written by me from scratch which can serve 10 concurrent requests. This project uses the socket programming Java API from the java.net package

Demo

Demo.mp4

Run Locally

Clone the project

  git clone https://github.com/aryak0512/socket-programming.git

Go to the project directory

  cd socket-programming

Install JDK 11

Start the server. Right click -> Server.java -> Run as Java Application. Server is ready to accept requests on port 7200.

Deployment

To build this project run

  java -jar webserver.jar

Load tests

Concurreny Test results

This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient).....done


Server Software:        
Server Hostname:        localhost
Server Port:            7200

Document Path:          /signup
Document Length:        0 bytes

Concurrency Level:      10
Time taken for tests:   0.003 seconds
Complete requests:      10
Failed requests:        0
Total transferred:      7210 bytes
HTML transferred:       0 bytes
Requests per second:    3644.31 [#/sec] (mean)
Time per request:       2.744 [ms] (mean)
Time per request:       0.274 [ms] (mean, across all concurrent requests)
Transfer rate:          2565.97 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.3      1       1
Processing:     0    1   0.2      1       1
Waiting:        0    0   0.3      0       1
Total:          1    1   0.2      1       2

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      2
  90%      2
  95%      2
  98%      2
  99%      2
 100%      2 (longest request)