From b4dbd2cfa724476162fa6d35941a5d7cdc9c9524 Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Mon, 18 Feb 2019 08:10:10 -0500 Subject: Adds all assignments not previously in a git repo --- CS2452/assign5/src/WRServer.java | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 CS2452/assign5/src/WRServer.java (limited to 'CS2452/assign5/src/WRServer.java') diff --git a/CS2452/assign5/src/WRServer.java b/CS2452/assign5/src/WRServer.java new file mode 100755 index 0000000..eadddc3 --- /dev/null +++ b/CS2452/assign5/src/WRServer.java @@ -0,0 +1,59 @@ +import java.io.*; +import java.net.*; +import java.util.concurrent.Semaphore; + +class WRServer implements Runnable +{ + int port; + Thread t; + byte[] theSharedResource = null; + Semaphore flg = null; + Semaphore flg2 = null; + + WRServer(int p) + { + port = p; + theSharedResource = new byte[1024 * 1024]; + flg = new Semaphore(1); + flg2 = new Semaphore(2); + t = new Thread(this, "WRServer"); + t.start(); + } + + public void run() + { + ServerSocket ss = null; + Socket s = null; + DataOutputStream dout = null; + boolean running = true; + System.out.println("WRServer is alive"); + + ResourceWriter rw = new ResourceWriter(theSharedResource, flg, flg2); + + try + { + ss = new ServerSocket(port); + } catch (Exception e0) + { + e0.printStackTrace(); + } + + while (running) + { + try + { + System.out.println("WRServer: waiting for incoming connection"); + s = ss.accept(); + System.out.println("WRServer: received incoming connection"); + + dout = new DataOutputStream(s.getOutputStream()); + ResourceReader rr = new ResourceReader(dout, theSharedResource, flg, flg2); + } catch (Exception e) + { + e.printStackTrace(); + } + } + + System.out.println("WRServer is finished"); + } +} -- cgit v1.1