Skip to content
Snippets Groups Projects
Commit 4b8568f8 authored by Terry D. Norbraten's avatar Terry D. Norbraten
Browse files

Merge origin/master

parents bede77e3 dabef55e
No related branches found
No related tags found
No related merge requests found
Showing
with 1084 additions and 205 deletions
No preview for this file type
No preview for this file type
# Networked Graphics MV3500 Course Assignments using Netbeans # Networked Graphics MV3500 Course Assignments using NetBeans
## Initialization and Refresh ## Initialization and Refresh
To submit homework via Netbeans to the gitlab server you will first need to To submit homework via NetBeans to the gitlab server you will first need to
clone a copy of the course repository at use Git to clone a copy of the course repository at
* https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500 * https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500
Use Netbeans to upload/update your homework assignments as follows: Use NetBeans to upload/update your homework assignments as follows:
1. *context menu:* **Git > Remote > Pull from Upstream** to first always ensure you update your repository 1. *context menu:* **Git > Remote > Pull from Upstream** to first always ensure you update your repository
1. *Making sure:* Did you perform step one and pull git to refresh your local version?! 1. *Making sure:* Did you perform step one and pull git to refresh your local version?!
1. Select file of interest in Netbeans tab for Files 1. Select file of interest in NetBeans tab for Files
1. *context menu:* **Refactor/Rename** and take spaces out of file name (gets wacky on various operating systems, email etc.) 1. *context menu:* **Refactor/Rename** and take spaces out of file name (gets wacky on various operating systems, email etc.)
1. Ensure Java classes and source files start with your last name 1. Ensure Java classes and source files start with your last name
1. *context menu:* **Run file**(s) to test 1. *context menu:* **Run file**(s) to test
...@@ -21,7 +21,7 @@ Use Netbeans to upload/update your homework assignments as follows: ...@@ -21,7 +21,7 @@ Use Netbeans to upload/update your homework assignments as follows:
## Adding and Editing Your Files ## Adding and Editing Your Files
All MV3500 cohorts have source code collected under a common Netbeans project. All MV3500 cohorts have source code collected under a common NetBeans project.
1. Find your current cohort src subdirectories, for example 1. Find your current cohort src subdirectories, for example
* [assignments / src / MV3500Cohort2024JulySeptember](src/MV3500Cohort2024JulySeptember) (we are here!) * [assignments / src / MV3500Cohort2024JulySeptember](src/MV3500Cohort2024JulySeptember) (we are here!)
...@@ -54,7 +54,7 @@ After committing and pushing, you can now verify that your files are been shared ...@@ -54,7 +54,7 @@ After committing and pushing, you can now verify that your files are been shared
## References ## References
* [Netbeans](http://www.netbeans.org) and [Using Git Support](https://netbeans.apache.org/kb/docs/ide/git.html) with [tutorial video, version 8.2](https://www.youtube.com/watch?v=rs3QSq5hNf4) * [NetBeans](http://www.netbeans.org) and [Using Git Support](https://netbeans.apache.org/kb/docs/ide/git.html) with [tutorial video, version 8.2](https://www.youtube.com/watch?v=rs3QSq5hNf4)
* [GitLab Flavored Markdown (GFM)](https://docs.gitlab.com/ee/user/markdown.html) and [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Here-Cheatsheet) * [GitLab Flavored Markdown (GFM)](https://docs.gitlab.com/ee/user/markdown.html) and [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Here-Cheatsheet)
* UML [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) on Wikipedia * UML [Sequence diagram](https://en.wikipedia.org/wiki/Sequence_diagram) on Wikipedia
* [Wireshark](https://www.wireshark.org) network protocol analyzer * [Wireshark](https://www.wireshark.org) network protocol analyzer
...@@ -144,7 +144,7 @@ POSSIBILITY OF SUCH DAMAGE. ...@@ -144,7 +144,7 @@ POSSIBILITY OF SUCH DAMAGE.
<property name="javadoc.nonavbar" value="false"/> <property name="javadoc.nonavbar" value="false"/>
<property name="javadoc.notree" value="false"/> <property name="javadoc.notree" value="false"/>
<property name="javadoc.private" value="false"/> <property name="javadoc.private" value="false"/>
<property name="javadoc.source" value="${java.source}"/> <!--<property name="javadoc.source" value="${java.source}"/>-->
<property name="javadoc.splitindex" value="true"/> <property name="javadoc.splitindex" value="true"/>
<property name="javadoc.breakiterator" value="true"/> <property name="javadoc.breakiterator" value="true"/>
<property name="javadoc.use" value="true"/><!-- Create class and package usage pages --> <property name="javadoc.use" value="true"/><!-- Create class and package usage pages -->
...@@ -171,13 +171,13 @@ POSSIBILITY OF SUCH DAMAGE. ...@@ -171,13 +171,13 @@ POSSIBILITY OF SUCH DAMAGE.
notree="${javadoc.notree}" notree="${javadoc.notree}"
Overview="src/overview.html" Overview="src/overview.html"
Private="${javadoc.private}" Private="${javadoc.private}"
source="${java.source}"
Splitindex="${javadoc.splitindex}" Splitindex="${javadoc.splitindex}"
Use="${javadoc.use}" Use="${javadoc.use}"
useexternalfile="yes" useexternalfile="yes"
verbose="true" verbose="true"
version="${javadoc.version}" version="${javadoc.version}"
windowtitle="${javadoc.windowtitle}"> windowtitle="${javadoc.windowtitle}">
<!-- source="${java.source}" -->
<classpath> <classpath>
<pathelement location="../lib/opendis7-full.jar"/> <pathelement location="../lib/opendis7-full.jar"/>
<pathelement location="../lib/open-dis_4.16.jar"/> <pathelement location="../lib/open-dis_4.16.jar"/>
......
annotation.processing.enabled=true annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false annotation.processing.enabled.in.editor=false
annotation.processing.processors.list= annotation.processing.processors.list=
annotation.processing.run.all.processors=true annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
application.desc=Student assignments performed as part of NPS course Networked Graphics MV3500. This course is an introduction to network communications in simulation applications. Topics include an introduction to the TCP/IP protocol stack; TCP/IP socket communications, including TCP, UDP, and multicast; and protocol design issues, with emphasis on Distributed Interactive Simulation (DIS) Protocol and High Level Architecture (HLA). Course emphasis is on creation and testing of network programming network code and web-browser applications. application.desc=Student assignments performed as part of NPS course Networked Graphics MV3500. This course is an introduction to network communications in simulation applications. Topics include an introduction to the TCP/IP protocol stack; TCP/IP socket communications, including TCP, UDP, and multicast; and protocol design issues, with emphasis on Distributed Interactive Simulation (DIS) Protocol and High Level Architecture (HLA). Course emphasis is on creation and testing of network programming network code and web-browser applications.
application.homepage=https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments application.homepage=https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/tree/master/assignments
application.splash=../..\\NetworkedGraphicsMV3500\\documentation\\images\\OpenDisSurferDude.png application.splash=../..\\NetworkedGraphicsMV3500\\documentation\\images\\OpenDisSurferDude.png
application.title=NPS Networked Graphics MV3500 assignments application.title=NPS Networked Graphics MV3500 assignments
application.vendor=Don Brutzman application.vendor=Don Brutzman
auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
build.classes.dir=${build.dir}/classes build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
build.dir=build build.dir=build
build.generated.dir=${build.dir}/generated build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here: # Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport: # Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket #debug.transport=dt_socket
debug.classpath=\ debug.classpath=\
${run.classpath} ${run.classpath}
debug.modulepath=\ debug.modulepath=\
${run.modulepath} ${run.modulepath}
debug.test.classpath=\ debug.test.classpath=\
${run.test.classpath} ${run.test.classpath}
debug.test.modulepath=\ debug.test.modulepath=\
${run.test.modulepath} ${run.test.modulepath}
# Files in build.classes.dir which should be excluded from distribution jar # Files in build.classes.dir which should be excluded from distribution jar
# Avoid compilation or inclusion of student project depending on mutex libraries only available in JDK8 # Avoid compilation or inclusion of student project depending on mutex libraries only available in JDK8
# https://stackoverflow.com/questions/27906896/exclude-package-from-build-but-not-from-view-in-netbeans-8 # https://stackoverflow.com/questions/27906896/exclude-package-from-build-but-not-from-view-in-netbeans-8
excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/** excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/**
dist.archive.excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/** dist.archive.excludes=**/MV3500Cohort2019JulySeptember/projects/BrennenstuhlKnobelochMcCann/**
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
dist.dir=dist dist.dir=dist
dist.jar=${dist.dir}/Networked_Graphics_MV3500_assignments.jar dist.jar=${dist.dir}/Networked_Graphics_MV3500_assignments.jar
dist.javadoc.dir=${dist.dir}/javadoc dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath= endorsed.classpath=
file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar file.reference.dis-enums-1.3.jar=../lib/dis-enums-1.3.jar
file.reference.opendis7-full.jar=../lib/opendis7-full.jar file.reference.opendis7-full.jar=../lib/opendis7-full.jar
file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar file.reference.open-dis_4.16.jar=../lib/open-dis_4.16.jar
file.reference.simkit-doc.zip=../lib/simkit-doc.zip file.reference.simkit-doc.zip=../lib/simkit-doc.zip
file.reference.simkit-src.zip=../lib/simkit-src.zip file.reference.simkit-src.zip=../lib/simkit-src.zip
file.reference.simkit.jar=../lib/simkit.jar file.reference.simkit.jar=../lib/simkit.jar
#file.reference.opendis7-enumerations-classes.jar=../lib/opendis7-enumerations-classes.jar #file.reference.opendis7-enumerations-classes.jar=../lib/opendis7-enumerations-classes.jar
#file.reference.opendis7-pdus-classes.jar=../lib/opendis7-pdus-classes.jar #file.reference.opendis7-pdus-classes.jar=../lib/opendis7-pdus-classes.jar
includes=** includes=**
jar.archive.disabled=${jnlp.enabled} jar.archive.disabled=${jnlp.enabled}
jar.compress=false jar.compress=false
jar.index=${jnlp.enabled} jar.index=${jnlp.enabled}
javac.classpath=\ javac.classpath=\
${file.reference.opendis7-full.jar}:\ ${file.reference.opendis7-full.jar}:\
${file.reference.dis-enums-1.3.jar}:\ ${file.reference.dis-enums-1.3.jar}:\
${file.reference.open-dis_4.16.jar}:\ ${file.reference.open-dis_4.16.jar}:\
${file.reference.simkit-doc.zip}:\ ${file.reference.simkit-doc.zip}:\
${file.reference.simkit-src.zip}:\ ${file.reference.simkit-src.zip}:\
${file.reference.simkit.jar} ${file.reference.simkit.jar}
# ${file.reference.opendis7-enumerations-classes.jar}:\ # ${file.reference.opendis7-enumerations-classes.jar}:\
# ${file.reference.opendis7-pdus-classes.jar}:\ # ${file.reference.opendis7-pdus-classes.jar}:\
# Space-separated list of extra javac options # Space-separated list of extra javac options
javac.compilerargs=-Xlint:deprecation -Xlint:unchecked javac.compilerargs=-Xlint:deprecation -Xlint:unchecked
javac.deprecation=false javac.deprecation=false
javac.external.vm=true javac.external.vm=true
javac.modulepath= javac.modulepath=
javac.processormodulepath= javac.processormodulepath=
javac.processorpath=\ javac.processorpath=\
${javac.classpath} ${javac.classpath}
javac.source=22 javac.source=20
javac.target=22 javac.target=20
javac.test.classpath=\ javac.test.classpath=\
${javac.classpath}:\ ${javac.classpath}:\
${build.classes.dir} ${build.classes.dir}
javac.test.modulepath=\ javac.test.modulepath=\
${javac.modulepath} ${javac.modulepath}
javac.test.processorpath=\ javac.test.processorpath=\
${javac.test.classpath} ${javac.test.classpath}
javadoc.additionalparam=-header "NPS Networked Graphics MV3500 Assignments" javadoc.additionalparam=-header "NPS Networked Graphics MV3500 Assignments"
javadoc.author=true javadoc.author=true
javadoc.encoding=${source.encoding} javadoc.encoding=${source.encoding}
javadoc.html5=false javadoc.html5=false
javadoc.noindex=false javadoc.noindex=false
javadoc.nonavbar=false javadoc.nonavbar=false
javadoc.notree=false javadoc.notree=false
javadoc.private=false javadoc.private=false
#javadoc.reference.opendis7-enumerations-classes.jar=../lib/opendis7-enumerations-javadoc.jar #javadoc.reference.opendis7-enumerations-classes.jar=../lib/opendis7-enumerations-javadoc.jar
javadoc.splitindex=true javadoc.splitindex=true
javadoc.use=true javadoc.use=true
javadoc.version=false javadoc.version=false
javadoc.windowtitle=MV3500 Assignments javadoc.windowtitle=MV3500 Assignments
jlink.launcher=false jlink.launcher=false
jlink.launcher.name=Networked_Graphics_MV3500_assignments jlink.launcher.name=Networked_Graphics_MV3500_assignments
jnlp.codebase.type=no.codebase jnlp.codebase.type=no.codebase
jnlp.descriptor=application jnlp.descriptor=application
jnlp.enabled=false jnlp.enabled=false
jnlp.mixed.code=default jnlp.mixed.code=default
jnlp.offline-allowed=false jnlp.offline-allowed=false
jnlp.signed=false jnlp.signed=false
jnlp.signing= jnlp.signing=
jnlp.signing.alias= jnlp.signing.alias=
jnlp.signing.keystore= jnlp.signing.keystore=
# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found. # Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
manifest.custom.application.library.allowable.codebase= manifest.custom.application.library.allowable.codebase=
# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts. # Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
manifest.custom.caller.allowable.codebase= manifest.custom.caller.allowable.codebase=
# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed # Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
manifest.custom.codebase= manifest.custom.codebase=
# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions) # Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
manifest.custom.permissions= manifest.custom.permissions=
meta.inf.dir=${src.dir}/META-INF meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false mkdist.disabled=false
platform.active=default_platform platform.active=JDK_22
project.licensePath=../license.txt project.licensePath=../license.txt
run.classpath=\ run.classpath=\
${javac.classpath}:\ ${javac.classpath}:\
${build.classes.dir} ${build.classes.dir}
# Space-separated list of JVM arguments used when running the project. # Space-separated list of JVM arguments used when running the project.
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. # You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
# To set system properties for unit tests define test-sys-prop.name=value: # To set system properties for unit tests define test-sys-prop.name=value:
run.jvmargs= run.jvmargs=
run.modulepath=\ run.modulepath=\
${javac.modulepath} ${javac.modulepath}
run.test.classpath=\ run.test.classpath=\
${javac.test.classpath}:\ ${javac.test.classpath}:\
${build.test.classes.dir} ${build.test.classes.dir}
run.test.modulepath=\ run.test.modulepath=\
${javac.test.modulepath} ${javac.test.modulepath}
source.encoding=UTF-8 source.encoding=UTF-8
#source.reference.opendis7-enumerations-classes.jar=../lib/opendis7-enumerations-source.jar #source.reference.opendis7-enumerations-classes.jar=../lib/opendis7-enumerations-source.jar
src.dir=src src.dir=src
test.src.dir=test test.src.dir=test
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1"> <project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.java.j2seproject</type> <type>org.netbeans.modules.java.j2seproject</type>
<configuration> <configuration>
<data xmlns="http://www.netbeans.org/ns/j2se-project/3"> <data xmlns="http://www.netbeans.org/ns/j2se-project/3">
<name>Networked Graphics MV3500 assignments</name> <name>Networked Graphics MV3500 assignments</name>
<explicit-platform explicit-source-supported="true"/> <source-roots>
<source-roots> <root id="src.dir"/>
<root id="src.dir"/> </source-roots>
</source-roots> <test-roots>
<test-roots> <root id="test.src.dir"/>
<root id="test.src.dir"/> </test-roots>
</test-roots> </data>
</data> <spellchecker-wordlist xmlns="http://www.netbeans.org/ns/spellchecker-wordlist/1">
<spellchecker-wordlist xmlns="http://www.netbeans.org/ns/spellchecker-wordlist/1"> <word>accessor</word>
<word>accessor</word> <word>autogeneration</word>
<word>autogeneration</word> <word>classpath</word>
<word>classpath</word> <word>Cygwin</word>
<word>Cygwin</word> <word>deliverables</word>
<word>deliverables</word> <word>docx</word>
<word>docx</word> <word>https</word>
<word>https</word> <word>interarrival</word>
<word>interarrival</word> <word>javadoc</word>
<word>javadoc</word> <word>localhost</word>
<word>localhost</word> <word>multicast</word>
<word>multicast</word> <word>Netbeans</word>
<word>Netbeans</word> <word>netcat</word>
<word>netcat</word> <word>NPS</word>
<word>NPS</word> <word>pdu</word>
<word>pdu</word> <word>README</word>
<word>README</word> <word>simkit</word>
<word>simkit</word> <word>simulationists</word>
<word>simulationists</word> <word>SISO</word>
<word>SISO</word> <word>subpackage</word>
<word>subpackage</word> <word>teardown</word>
<word>teardown</word> <word>txt</word>
<word>txt</word> <word>UML</word>
<word>UML</word> <word>unicast</word>
<word>unicast</word> <word>wikipedia</word>
<word>wikipedia</word> <word>Wireshark</word>
<word>Wireshark</word> </spellchecker-wordlist>
</spellchecker-wordlist> </configuration>
</configuration> </project>
</project>
...@@ -21,6 +21,7 @@ public class SchnitzlerUnicastNetworking { ...@@ -21,6 +21,7 @@ public class SchnitzlerUnicastNetworking {
} }
/** /**
* Program invocation, execution starts here
* @param args the command line arguments * @param args the command line arguments
*/ */
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -4,13 +4,12 @@ import java.io.*; ...@@ -4,13 +4,12 @@ import java.io.*;
import java.net.*; import java.net.*;
/** /**
* This client program establishes a socket connection to the {@link TcpExamples.TcpExample4DispatchServer}, * This client program establishes a socket connection to the ,
* then checks how long it takes to read the single line it expects as a server response. * then checks how long it takes to read the single line it expects as a server response.
* The modification I have added is it checks for a password from the server. And it matches it says success and disconnects * The modification I have added is it checks for a password from the server. And it matches it says success and disconnects
* No fancy footwork here, it is pretty simple and similar to {@link TcpExamples.TcpExample3Client}. * No fancy footwork here, it is pretty simple and similar to TcpExamples.TcpExample3Client}.
* borrowed code from class
* *
* @see TcpExample4DispatchServer
* @see TcpExample4HandlerThread
* *
* @see <a href="../../../src/TcpExamples/TcpExample4TerminalLog.txt" target="blank">TcpExample4TerminalLog.txt</a> * @see <a href="../../../src/TcpExamples/TcpExample4TerminalLog.txt" target="blank">TcpExample4TerminalLog.txt</a>
* @see <a href="../../../src/TcpExamples/TcpExample4SequenceDiagram.png" target="blank">TcpExample4SequenceDiagram.png</a> * @see <a href="../../../src/TcpExamples/TcpExample4SequenceDiagram.png" target="blank">TcpExample4SequenceDiagram.png</a>
...@@ -19,7 +18,7 @@ import java.net.*; ...@@ -19,7 +18,7 @@ import java.net.*;
* @author Don McGregor * @author Don McGregor
* @author Don Brutzman * @author Don Brutzman
* @author MV3500 class * @author MV3500 class
* @MarkMM * @author MarkMM
*/ */
public class Matiski2Client public class Matiski2Client
{ {
......
...@@ -5,18 +5,16 @@ import java.net.*; ...@@ -5,18 +5,16 @@ import java.net.*;
/** /**
* <p> * <p>
* This utility class supports the {@link TcpExamples.TcpExample4DispatchServer} program, * This utility class supports the TcpExamples.TcpExample4DispatchServer program,
* handling all programming logic needed for a new socket connection * handling all programming logic needed for a new socket connection
* to run in a thread of its own. This is the server * to run in a thread of its own. This is the server
* portion as well, so we artificially invent what happens * portion as well, so we artificially invent what happens
* if the server can't respond to a connection for several seconds. * if the server can't respond to a connection for several seconds.
* </p> * </p>
* <p> * <p>
* Warning: do not run this class! It is created and used automatically by {@link TcpExamples.TcpExample4DispatchServer} at run time. * Warning: do not run this class! It is created and used automatically by TcpExamples.TcpExample4DispatchServer} at run time.
* </p> * </p>
* * see examples
* @see TcpExample4Client
* @see TcpExample4DispatchServer
* *
* @see <a href="../../../src/TcpExamples/TcpExample4TerminalLog.txt" target="blank">TcpExample4TerminalLog.txt</a> * @see <a href="../../../src/TcpExamples/TcpExample4TerminalLog.txt" target="blank">TcpExample4TerminalLog.txt</a>
* @see <a href="../../../src/TcpExamples/TcpExample4SequenceDiagram.png" target="blank">TcpExample4SequenceDiagram.png</a> * @see <a href="../../../src/TcpExamples/TcpExample4SequenceDiagram.png" target="blank">TcpExample4SequenceDiagram.png</a>
...@@ -25,6 +23,7 @@ import java.net.*; ...@@ -25,6 +23,7 @@ import java.net.*;
* @author Don McGregor * @author Don McGregor
* @author Don Brutzman * @author Don Brutzman
* @author MV3500 class * @author MV3500 class
* borrowed heavily from above authors
*/ */
public class Matiski2HandlerThread extends Thread public class Matiski2HandlerThread extends Thread
{ {
......
...@@ -9,8 +9,6 @@ import java.net.*; ...@@ -9,8 +9,6 @@ import java.net.*;
* This advanced technique is often used in high=performance high=capacity server programs. * This advanced technique is often used in high=performance high=capacity server programs.
* *
* *
* @see TcpExample4Client
* @see Matiski2HandlerThread
* *
* @see <a href="../../../src/TcpExamples/TcpExample4TerminalLog.txt" target="blank">TcpExample4TerminalLog.txt</a> * @see <a href="../../../src/TcpExamples/TcpExample4TerminalLog.txt" target="blank">TcpExample4TerminalLog.txt</a>
* @see <a href="../../../src/TcpExamples/TcpExample4SequenceDiagram.png" target="blank">TcpExample4SequenceDiagram.png</a> * @see <a href="../../../src/TcpExamples/TcpExample4SequenceDiagram.png" target="blank">TcpExample4SequenceDiagram.png</a>
...@@ -19,6 +17,7 @@ import java.net.*; ...@@ -19,6 +17,7 @@ import java.net.*;
* @author Don McGregor * @author Don McGregor
* @author Don Brutzman * @author Don Brutzman
* @author MV3500 class * @author MV3500 class
* borrowed heavily from above authors
*/ */
public class Matiski2Server public class Matiski2Server
{ {
......
...@@ -7,9 +7,8 @@ import java.time.DayOfWeek; ...@@ -7,9 +7,8 @@ import java.time.DayOfWeek;
//import java.time.LocalTime; // conversion? //import java.time.LocalTime; // conversion?
/** /**
* This client program establishes a socket connection to the {@link RomeroServerHW2}, * This client program establishes a socket connection to the RomeroServerHW2,
* then checks how long it takes to read the single line it expects as a server response. * then checks how long it takes to read the single line it expects as a server response.
* No fancy footwork here, it is pretty simple and similar to {@link TcpExample3Client}.
* *
* @author Don McGregor * @author Don McGregor
* @author Don Brutzman * @author Don Brutzman
......
...@@ -5,7 +5,7 @@ import java.net.*; ...@@ -5,7 +5,7 @@ import java.net.*;
/** /**
* <p> * <p>
* This utility class supports the {@link RomeroServerHW2} program, * This utility class supports the RomeroServerHW2 program,
* handling all programming logic needed for a new socket connection * handling all programming logic needed for a new socket connection
* to run in a thread of its own. This is the server * to run in a thread of its own. This is the server
* portion as well, so we artificially invent what happens * portion as well, so we artificially invent what happens
...@@ -43,7 +43,6 @@ public class RomeroHandlerThreadHW2 extends Thread ...@@ -43,7 +43,6 @@ public class RomeroHandlerThreadHW2 extends Thread
} }
/** Handles one connection /** Handles one connection
* @overriding run() method in Java Thread class is deliberate
*/ */
@Override @Override
public void run() public void run()
......
...@@ -13,11 +13,22 @@ import java.util.Scanner; ...@@ -13,11 +13,22 @@ import java.util.Scanner;
* @author simonschnitzler * @author simonschnitzler
*/ */
public class SchnitzlerClient { public class SchnitzlerClient {
/** Default constructor */
public SchnitzlerClient(){
// default constructor
}
/** IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
* @see <a href="https://en.wikipedia.org/wiki/localhost" target="_blank">https://en.wikipedia.org/wiki/localhost</a>
* @see <a href="https://en.wikipedia.org/wiki/IPv6_address" target="_blank">https://en.wikipedia.org/wiki/IPv6_address</a>
*/
public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; //Local host public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; //Local host
/** /**
* Program invocation, execution starts here
* @param args the command line arguments * @param args the command line arguments
* @throws java.lang.Exception * @throws java.lang.Exception if connection failed
*/ */
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
Socket socket = new Socket(LOCALHOST, 2317); Socket socket = new Socket(LOCALHOST, 2317);
......
...@@ -16,10 +16,18 @@ import java.util.Set; ...@@ -16,10 +16,18 @@ import java.util.Set;
* @author simonschnitzler * @author simonschnitzler
*/ */
public class SchnitzlerServer { public class SchnitzlerServer {
/** Default constructor */
public SchnitzlerServer(){
// default constructor
}
// the set clientWriters contains form all sockets the active PrintStream // the set clientWriters contains form all sockets the active PrintStream
private static Set<PrintWriter> clientWriters = new HashSet<>(); private static Set<PrintWriter> clientWriters = new HashSet<>();
/** /**
* Program invocation, execution starts here
*
* @param args the command line arguments * @param args the command line arguments
*/ */
public static void main(String[] args) { public static void main(String[] args) {
......
# Rene Romero Homework 3
***
## Description
Modification to ...
<!--
Phrases taken from: <b>https://www.divein.com/everyday/monday-motivation-quotes/</b>
<a href="images/MOTD.png"><img src="images/MOTD.png" width="700" align="center"/></a>
Message of the day reference: <b>https://en.wikipedia.org/wiki/Message_of_the_day </b>
-->
/**
* Final project assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments" target="_blank">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful" target="_blank">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java" target="_blank">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework3.Romero;
For Homework 3, I have done nothing yet
\ No newline at end of file
/**
* Final project assignments supporting the NPS MOVES MV3500 Networked Graphics course.
*
* @see <a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/tree/master/assignments" target="_blank">networkedGraphicsMV3500 assignments</a>
* @see java.lang.Package
* @see <a href="https://stackoverflow.com/questions/22095487/why-is-package-info-java-useful" target="_blank">StackOverflow: why-is-package-info-java-useful</a>
* @see <a href="https://stackoverflow.com/questions/624422/how-do-i-document-packages-in-java" target="_blank">StackOverflow: how-do-i-document-packages-in-java</a>
*/
package MV3500Cohort2024JulySeptember.homework3.Smith;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment