From 4dd24a1c92bd8210551664a884b29c019b8f830c Mon Sep 17 00:00:00 2001
From: Mason Eiland <65780345+meiland1@users.noreply.github.com>
Date: Thu, 26 Jan 2023 16:22:33 -0700
Subject: [PATCH 1/5] Add existing file
---
Circles/build.xml | 0
HelloWorld/src/helloworld.java | 5 +++++
Questions/p1Questions.txt | 0
Questions/p2Questions.txt | 0
README.md | 3 +++
SimpleWebServer/build.xml | 0
6 files changed, 8 insertions(+)
create mode 100644 Circles/build.xml
create mode 100644 HelloWorld/src/helloworld.java
create mode 100644 Questions/p1Questions.txt
create mode 100644 Questions/p2Questions.txt
create mode 100644 SimpleWebServer/build.xml
diff --git a/Circles/build.xml b/Circles/build.xml
new file mode 100644
index 00000000..e69de29b
diff --git a/HelloWorld/src/helloworld.java b/HelloWorld/src/helloworld.java
new file mode 100644
index 00000000..3fe4d484
--- /dev/null
+++ b/HelloWorld/src/helloworld.java
@@ -0,0 +1,5 @@
+public class helloworld {
+ public static void main (String[] args){
+ System.out.println("Hello World");
+ }
+}
diff --git a/Questions/p1Questions.txt b/Questions/p1Questions.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/Questions/p2Questions.txt b/Questions/p2Questions.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/README.md b/README.md
index 685238c5..7296ebfb 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,9 @@
# Programs
Base code for program assignments in Software Development (C S 371).
+# GitHub userid for CS371 LAB
+GitHub userid: meiland1
+
## Program 1 and Program 2
These assignments rely on the SimpleWebServer program. Each gets graded using tags in a cloned repository.
diff --git a/SimpleWebServer/build.xml b/SimpleWebServer/build.xml
new file mode 100644
index 00000000..e69de29b
From 00264eae59bb64ccfaf78d741bd6894cdc449da8 Mon Sep 17 00:00:00 2001
From: Mason Eiland <65780345+meiland1@users.noreply.github.com>
Date: Thu, 9 Feb 2023 13:06:19 -0700
Subject: [PATCH 2/5] Update WebServer.java
Updated webserver.java, removed variable
---
SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java
index 0bfe882d..f8f6db6b 100644
--- a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java
+++ b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java
@@ -19,14 +19,12 @@ public class WebServer
{
private ServerSocket socket;
- private boolean running;
-
+
/**
* Constructor
**/
private WebServer()
{
- running = false;
}
/**
@@ -43,6 +41,7 @@ private boolean start(int port)
try
{
socket = new ServerSocket(port);
+ System.out.println("Web server started! Listening on port: "+port+".");
}
catch (Exception e)
{
From 9a062e2d40f470ad29b21a224307f1d3a8bc3561 Mon Sep 17 00:00:00 2001
From: Mason Eiland <65780345+meiland1@users.noreply.github.com>
Date: Sat, 22 Apr 2023 07:30:40 -0600
Subject: [PATCH 3/5] updated build/questions
---
Questions/p1Questions.txt | 9 +++
SimpleWebServer/build.xml | 24 +++++++
.../src/edu/nmsu/cs/webserver/WebServer.java | 1 -
.../src/edu/nmsu/cs/webserver/WebWorker.java | 67 ++++++++++++++++---
.../src/edu/nmsu/cs/webserver/hello.html | 7 ++
5 files changed, 98 insertions(+), 10 deletions(-)
create mode 100644 SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html
diff --git a/Questions/p1Questions.txt b/Questions/p1Questions.txt
index e69de29b..b4dac45a 100644
--- a/Questions/p1Questions.txt
+++ b/Questions/p1Questions.txt
@@ -0,0 +1,9 @@
+Time to complete Assignment: 5.5 hours
+
+Time it actually took:
+Thought/Design: 2 hours
+Programming: 5 hours
+Debugging: 4 hours
+Total: 10 hours
+
+Accuracy of original estimate: 55%
\ No newline at end of file
diff --git a/SimpleWebServer/build.xml b/SimpleWebServer/build.xml
index e69de29b..f89a1bed 100644
--- a/SimpleWebServer/build.xml
+++ b/SimpleWebServer/build.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java
index f8f6db6b..0fc44cdd 100644
--- a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java
+++ b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebServer.java
@@ -18,7 +18,6 @@
public class WebServer
{
private ServerSocket socket;
-
/**
* Constructor
diff --git a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java
index 78bba687..4d05976d 100644
--- a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java
+++ b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java
@@ -19,18 +19,24 @@
*
**/
+
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
+import java.io.File;
+import java.io.FileReader;
import java.net.Socket;
+import java.nio.file.Paths;
import java.text.DateFormat;
import java.util.Date;
import java.util.TimeZone;
public class WebWorker implements Runnable
{
-
+ public boolean exist;
+ public String address;
+ public File file;
private Socket socket;
/**
@@ -70,7 +76,7 @@ public void run()
/**
* Read the HTTP request header.
**/
- private void readHTTPRequest(InputStream is)
+ private void readHTTPRequest(InputStream is)
{
String line;
BufferedReader r = new BufferedReader(new InputStreamReader(is));
@@ -81,6 +87,16 @@ private void readHTTPRequest(InputStream is)
while (!r.ready())
Thread.sleep(1);
line = r.readLine();
+
+
+
+ if(line.contains("GET")){
+
+
+ address = line.substring(5,line.indexOf(" ", 4));
+ file = new File(address);
+ exist = file.exists();
+ }
System.err.println("Request line: (" + line + ")");
if (line.length() == 0)
break;
@@ -107,13 +123,17 @@ private void writeHTTPHeader(OutputStream os, String contentType) throws Excepti
Date d = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
df.setTimeZone(TimeZone.getTimeZone("GMT"));
+ if(exist == true){
os.write("HTTP/1.1 200 OK\n".getBytes());
+ }
+ else{os.write("HTTP/1.1 404 Page Not Found\n".getBytes());}
+
os.write("Date: ".getBytes());
os.write((df.format(d)).getBytes());
os.write("\n".getBytes());
- os.write("Server: Jon's very own server\n".getBytes());
- // os.write("Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT\n".getBytes());
- // os.write("Content-Length: 438\n".getBytes());
+ os.write("Server: Mason's very own server\n".getBytes());
+ //os.write("Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT\n".getBytes());
+ //os.write("Content-Length: 438\n".getBytes());
os.write("Connection: close\n".getBytes());
os.write("Content-Type: ".getBytes());
os.write(contentType.getBytes());
@@ -129,10 +149,39 @@ private void writeHTTPHeader(OutputStream os, String contentType) throws Excepti
* is the OutputStream object to write to
**/
private void writeContent(OutputStream os) throws Exception
- {
- os.write("
\n".getBytes());
- os.write("My web server works!
\n".getBytes());
- os.write("\n".getBytes());
+ {
+ if(exist == true){
+ String webServer = "Mason's Server";
+ BufferedReader in = new BufferedReader(new FileReader(address));
+
+ Date date = new Date();
+ String substring;
+
+ while((substring = in.readLine()) != null){
+
+
+ if(substring.contains("")){
+ substring = substring.replace("",date.toString());
+ }
+ if(substring.contains("")){
+ substring = substring.replace("", webServer);
+ }
+
+ os.write("\n".getBytes());
+ os.write((""+ substring +"\n
\n").getBytes());
+ os.write("\n".getBytes());
+
+ }
+ in.close();
+
+ }
+
+ else{
+ os.write("\n".getBytes());
+ os.write("404 Page Not Found!
\n".getBytes());
+ os.write("\n".getBytes());
+
+ }
}
} // end class
diff --git a/SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html b/SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html
new file mode 100644
index 00000000..3bc5cf19
--- /dev/null
+++ b/SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html
@@ -0,0 +1,7 @@
+
+
+
+
+Hello world, the current date is: . The server is: .
+
+
\ No newline at end of file
From 89d828646f15292c0c966252a74e53626a68e2ef Mon Sep 17 00:00:00 2001
From: Mason Eiland <65780345+meiland1@users.noreply.github.com>
Date: Fri, 5 May 2023 15:53:49 -0600
Subject: [PATCH 4/5] added image handling/www folder/updated build/p2Qs
---
Questions/p2Questions.txt | 9 ++++
SimpleWebServer/build.xml | 4 +-
.../src/edu/nmsu/cs/webserver/WebWorker.java | 42 +++++++++++++-----
.../src/edu/nmsu/cs/webserver/hello.html | 7 ---
SimpleWebServer/www/cat.png | Bin 0 -> 448137 bytes
SimpleWebServer/www/deku-min.gif | Bin 0 -> 559416 bytes
SimpleWebServer/www/hello.html | 12 +++++
SimpleWebServer/www/kayden_10.jpg | Bin 0 -> 9341 bytes
8 files changed, 55 insertions(+), 19 deletions(-)
delete mode 100644 SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html
create mode 100644 SimpleWebServer/www/cat.png
create mode 100644 SimpleWebServer/www/deku-min.gif
create mode 100644 SimpleWebServer/www/hello.html
create mode 100644 SimpleWebServer/www/kayden_10.jpg
diff --git a/Questions/p2Questions.txt b/Questions/p2Questions.txt
index e69de29b..9a756479 100644
--- a/Questions/p2Questions.txt
+++ b/Questions/p2Questions.txt
@@ -0,0 +1,9 @@
+Time to complete Assignment: 2 hours
+
+Time it actually took:
+Thought/Design: 30 min
+Programming: 1 hour
+Debugging: 1 hours
+Total: 2.5 hours
+
+Accuracy of original estimate: 80%
\ No newline at end of file
diff --git a/SimpleWebServer/build.xml b/SimpleWebServer/build.xml
index f89a1bed..c1ffc805 100644
--- a/SimpleWebServer/build.xml
+++ b/SimpleWebServer/build.xml
@@ -1,5 +1,5 @@
-
+
@@ -18,7 +18,7 @@
-
+
\ No newline at end of file
diff --git a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java
index 4d05976d..97c947bc 100644
--- a/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java
+++ b/SimpleWebServer/src/edu/nmsu/cs/webserver/WebWorker.java
@@ -25,8 +25,10 @@
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileReader;
import java.net.Socket;
+import java.nio.file.Files;
import java.nio.file.Paths;
import java.text.DateFormat;
import java.util.Date;
@@ -38,7 +40,6 @@ public class WebWorker implements Runnable
public String address;
public File file;
private Socket socket;
-
/**
* Constructor: must have a valid open socket
**/
@@ -60,8 +61,9 @@ public void run()
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
readHTTPRequest(is);
- writeHTTPHeader(os, "text/html");
- writeContent(os);
+ String content = readType(address);
+ writeHTTPHeader(os, content);
+ writeContent(os, content);
os.flush();
socket.close();
}
@@ -92,7 +94,7 @@ private void readHTTPRequest(InputStream is)
if(line.contains("GET")){
-
+ //Gets the filename
address = line.substring(5,line.indexOf(" ", 4));
file = new File(address);
exist = file.exists();
@@ -110,6 +112,15 @@ private void readHTTPRequest(InputStream is)
return;
}
+ // checks the file type
+ private String readType(String path){
+ if(path.contains(".jpg")) return "image/jpg";
+ if(path.contains(".gif")) return "image/gif";
+ if(path.contains(".png")) return "image/png";
+ if(path.contains(".jpeg")) return "image/jpeg";
+ return "text/html";
+ }
+
/**
* Write the HTTP header lines to the client network connection.
*
@@ -126,8 +137,8 @@ private void writeHTTPHeader(OutputStream os, String contentType) throws Excepti
if(exist == true){
os.write("HTTP/1.1 200 OK\n".getBytes());
}
- else{os.write("HTTP/1.1 404 Page Not Found\n".getBytes());}
-
+ else if(exist == false){os.write("HTTP/1.1 404 Page Not Found\n".getBytes());}
+ else if((exist == true) && !contentType.contains("html")){os.write("HTTP/1.1 400 BAD REQUEST\n".getBytes());}
os.write("Date: ".getBytes());
os.write((df.format(d)).getBytes());
os.write("\n".getBytes());
@@ -148,15 +159,17 @@ private void writeHTTPHeader(OutputStream os, String contentType) throws Excepti
* @param os
* is the OutputStream object to write to
**/
- private void writeContent(OutputStream os) throws Exception
+ private void writeContent(OutputStream os, String content) throws Exception
{
+
if(exist == true){
- String webServer = "Mason's Server";
- BufferedReader in = new BufferedReader(new FileReader(address));
+ if(content.contains("html")){
+ String webServer = "Mason's Server";
+ BufferedReader in = new BufferedReader(new FileReader(address));
Date date = new Date();
String substring;
-
+
while((substring = in.readLine()) != null){
@@ -166,6 +179,9 @@ private void writeContent(OutputStream os) throws Exception
if(substring.contains("")){
substring = substring.replace("", webServer);
}
+ if(substring.contains("")){
+ substring = substring.replace("\"img\"", "kayden_10.jpg");
+ }
os.write("\n".getBytes());
os.write((""+ substring +"\n
\n").getBytes());
@@ -173,6 +189,12 @@ private void writeContent(OutputStream os) throws Exception
}
in.close();
+ }
+ else if(content.contains("image/jpg") || content.contains("image/gif") || content.contains("image/jpeg") || content.contains("image/png")){
+ byte[] toBytes = Files.readAllBytes(new File(address.substring(0)).toPath());
+ os.write(toBytes);
+ }
+
}
diff --git a/SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html b/SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html
deleted file mode 100644
index 3bc5cf19..00000000
--- a/SimpleWebServer/src/edu/nmsu/cs/webserver/hello.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-Hello world, the current date is: . The server is: .
-
-
\ No newline at end of file
diff --git a/SimpleWebServer/www/cat.png b/SimpleWebServer/www/cat.png
new file mode 100644
index 0000000000000000000000000000000000000000..154b21162576c7b4eb70bd6ebc95035ef5c56245
GIT binary patch
literal 448137
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
23qs2er%%LoWxth=2_fln3
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