Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
AndroidOnlabKviz2018
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KGregPFerenc
AndroidOnlabKviz2018
Commits
b5eb0fe4
Commit
b5eb0fe4
authored
Apr 30, 2018
by
KGreg
Browse files
Options
Downloads
Patches
Plain Diff
Observer Proto Connect & Disconnect
parent
ae98b0a5
No related branches found
No related tags found
No related merge requests found
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
KvizObserver/src/main/java/Main.java
+99
-4
99 additions, 4 deletions
KvizObserver/src/main/java/Main.java
KvizObserver/src/main/java/ServerHolder.java
+15
-0
15 additions, 0 deletions
KvizObserver/src/main/java/ServerHolder.java
with
114 additions
and
4 deletions
KvizObserver/src/main/java/Main.java
+
99
−
4
View file @
b5eb0fe4
...
@@ -8,11 +8,14 @@ import java.net.Socket;
...
@@ -8,11 +8,14 @@ import java.net.Socket;
import
java.net.UnknownHostException
;
import
java.net.UnknownHostException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Scanner
;
import
java.util.Scanner
;
import
java.util.concurrent.Callable
;
import
java.util.concurrent.FutureTask
;
import
javax.jmdns.JmDNS
;
import
javax.jmdns.JmDNS
;
import
javax.jmdns.ServiceEvent
;
import
javax.jmdns.ServiceEvent
;
import
javax.jmdns.ServiceInfo
;
import
javax.jmdns.ServiceInfo
;
import
javax.jmdns.ServiceListener
;
import
javax.jmdns.ServiceListener
;
import
javax.swing.SwingWorker
;
import
model.ServerModel
;
import
model.ServerModel
;
...
@@ -22,7 +25,7 @@ public class Main {
...
@@ -22,7 +25,7 @@ public class Main {
private
String
SERVICE_NAME
=
"ClientServer"
;
private
String
SERVICE_NAME
=
"ClientServer"
;
private
String
SERVICE_TYPE
=
"_http._tcp."
;
private
String
SERVICE_TYPE
=
"_http._tcp."
;
private
static
String
SERVER_SERVICE_NAME
=
"KvizServer"
;
private
static
String
SERVER_SERVICE_NAME
=
"KvizServer"
;
private
String
CLIENT_NAME
=
"Unknown"
;
private
static
String
CLIENT_NAME
=
"Unknown"
;
private
boolean
exit
=
true
;
private
boolean
exit
=
true
;
...
@@ -37,6 +40,8 @@ public class Main {
...
@@ -37,6 +40,8 @@ public class Main {
private
static
ArrayList
<
Thread
>
threads
;
private
static
ArrayList
<
Thread
>
threads
;
private
static
PrintWriter
out
=
null
;
private
static
class
SampleListener
implements
ServiceListener
{
private
static
class
SampleListener
implements
ServiceListener
{
@Override
@Override
...
@@ -103,8 +108,8 @@ public class Main {
...
@@ -103,8 +108,8 @@ public class Main {
System
.
out
.
println
(
"Set The ObserverName:"
);
System
.
out
.
println
(
"Set The ObserverName:"
);
Scanner
s
=
new
Scanner
(
System
.
in
);
Scanner
s
=
new
Scanner
(
System
.
in
);
hostname
=
s
.
nextLine
();
CLIENT_NAME
=
s
.
nextLine
();
s
.
close
();
// Create a JmDNS instance
// Create a JmDNS instance
JmDNS
jmdns
=
JmDNS
.
create
(
InetAddress
.
getLocalHost
());
JmDNS
jmdns
=
JmDNS
.
create
(
InetAddress
.
getLocalHost
());
...
@@ -115,12 +120,33 @@ public class Main {
...
@@ -115,12 +120,33 @@ public class Main {
jmdns
.
addServiceListener
(
"_http._tcp.local."
,
new
SampleListener
());
jmdns
.
addServiceListener
(
"_http._tcp.local."
,
new
SampleListener
());
// Wait a bit
// Wait a bit
Thread
.
sleep
(
30000
);
Thread
.
sleep
(
3000
);
String
msg
=
""
;
s
=
new
Scanner
(
System
.
in
);
System
.
out
.
println
(
"Type 'Connect' to Connect:"
);
msg
=
s
.
nextLine
();
if
(
msg
.
equals
(
"Connect"
))
{
onConnect
(
0
);
}
System
.
out
.
println
(
"Type 'Disconnect' to Disconnect:"
);
msg
=
s
.
nextLine
();
if
(
msg
.
equals
(
"Disconnect"
))
{
onDisconnect
();
}
}
catch
(
UnknownHostException
e
)
{
}
catch
(
UnknownHostException
e
)
{
System
.
out
.
println
(
e
.
getMessage
());
System
.
out
.
println
(
e
.
getMessage
());
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
e
.
getMessage
());
System
.
out
.
println
(
e
.
getMessage
());
}
}
}
}
class
CommunicationThread
implements
Runnable
{
class
CommunicationThread
implements
Runnable
{
...
@@ -214,4 +240,73 @@ public class Main {
...
@@ -214,4 +240,73 @@ public class Main {
}
}
}
}
public
static
void
onConnect
(
int
serverNumber
)
{
try
{
if
(
servers
.
size
()
>
serverNumber
)
{
String
str
=
"Connect##Observer##"
+
CLIENT_NAME
;
ServerModel
sm
=
servers
.
get
(
serverNumber
);
Socket
socket
=
sm
.
getSocket
();
ServerHolder
.
setServerModel
(
sm
);
if
(
out
==
null
)
{
out
=
new
PrintWriter
(
new
OutputStreamWriter
(
sm
.
getSocket
().
getOutputStream
()),
true
);
}
m
.
new
SendMessageToServerTask
(
str
).
execute
();
}
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
static
void
onDisconnect
()
{
try
{
if
(
ServerHolder
.
getSocket
()
!=
null
)
{
String
str
=
"Disconnect##Observer##"
+
CLIENT_NAME
;
if
(
out
==
null
)
{
out
=
new
PrintWriter
(
new
OutputStreamWriter
(
ServerHolder
.
getSocket
().
getOutputStream
()),
true
);
}
m
.
new
SendMessageToServerTask
(
str
).
execute
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
private
void
SendConnectionLost
(
ServerModel
server
)
{
try
{
PrintWriter
out
=
new
PrintWriter
(
new
OutputStreamWriter
(
server
.
getSocket
().
getOutputStream
()),
true
);
out
.
println
(
"ConnectionLost"
);
out
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
private
class
SendMessageToServerTask
extends
SwingWorker
{
String
message
;
public
SendMessageToServerTask
(
String
...
params
)
{
super
();
message
=
params
[
0
];
}
@Override
protected
Object
doInBackground
()
throws
Exception
{
out
.
println
(
message
);
return
null
;
}
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
KvizObserver/src/main/java/ServerHolder.java
0 → 100644
+
15
−
0
View file @
b5eb0fe4
import
java.net.Socket
;
import
model.ServerModel
;
public
class
ServerHolder
{
private
static
ServerModel
serverModel
=
null
;
public
static
Socket
getSocket
()
{
return
serverModel
.
getSocket
();
}
public
static
void
setServerModel
(
ServerModel
serverModel
)
{
ServerHolder
.
serverModel
=
serverModel
;
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment