Skip to content

A custom web server created from scratch using Java sockets that can serve concurrent requests. This server has a test page (similar to Apache's) and a sign up page from which form data can be read.

Notifications You must be signed in to change notification settings

aryak0512/socket-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

A custom web server created from scratch using Java sockets that can serve concurrent requests. This server has a test page (similar to Apache's) and a sign up page from which form data can be read.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published