-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInfoServer.java
More file actions
118 lines (103 loc) · 4.67 KB
/
Copy pathInfoServer.java
File metadata and controls
118 lines (103 loc) · 4.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
*
* Colin Kugler
* CS3750-001
*
* Homework 9 revision for resubmission
* while(!clientReader.readLine().equals("Client ready for message...")){} method for
* stalling server message recommended by Anthony Mitcham
*
*/
import java.io.*;
import javax.net.ssl.*;
public class InfoServer {
//System.setProperty("javax.net.ssl.keyStore", "3750keystore");
//System.setProperty("javax.net.ssl.keyStorePassword", "pass1234");
public static void main(String[] arstring) {
// create serversocket
try {
SSLServerSocketFactory sslSSF = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
SSLServerSocket sslSS = (SSLServerSocket) sslSSF.createServerSocket(5120);
BufferedWriter writeToFile = null;
while(true){
SSLSocket socket = (SSLSocket) sslSS.accept();
System.out.println("Connection created");
// used to send info to client
OutputStream os = socket.getOutputStream();
OutputStreamWriter ow = new OutputStreamWriter(os);
BufferedWriter clientWriter = new BufferedWriter(ow);
//used to read incoming info from client.
InputStream is = socket.getInputStream();
InputStreamReader ir = new InputStreamReader(is);
BufferedReader clientReader = new BufferedReader(ir);
// getting session info
socket.addHandshakeCompletedListener(new HandshakeCompletedListener() {
public void handshakeCompleted(HandshakeCompletedEvent event){
System.out.println("Peer host is... " + event.getSession().getPeerHost());
System.out.println("Cipher suite is... " + event.getSession().getCipherSuite());
System.out.println("Protocol is... " + event.getSession().getProtocol());
System.out.println("Session ID is... " + event.getSession());
System.out.println("Creation time of session... " + event.getSession().getCreationTime());
System.out.println("Last accessed time of session... " + event.getSession().getLastAccessedTime());}
});
boolean client_info = true;
// while client_info is true (yes to adding more users), loop through getting info
// from client and saving to a file name after the usernames.
while(client_info){
clientWriter.write("What is the User Name?: " + '\n');
clientWriter.flush();
String answer = null;
if((answer = clientReader.readLine()) != null){
String filename = answer;
System.out.println("Response from Client " + answer);
writeToFile = new BufferedWriter(new FileWriter(filename + ".txt"));
writeToFile.write("User Name: "+ answer + '\n');
}
// allows server to wait for client to respond to question and acknowledge being ready for next question.
while(!clientReader.readLine().equals("Client ready for message...")){}
clientWriter.write("What is the Client Full Name?: " + '\n');
clientWriter.flush();
if((answer = clientReader.readLine()) != null){
System.out.println("Response from Client " + answer);
writeToFile.write("Full Name: " + answer + '\n');
}
while(!clientReader.readLine().equals("Client ready for message...")){}
clientWriter.write("What is the Client Address?: " + '\n');
clientWriter.flush();
if((answer = clientReader.readLine()) != null){
System.out.println("Response from Client " + answer);
writeToFile.write("Address: " + answer + '\n');
}
while(!clientReader.readLine().equals("Client ready for message...")){}
clientWriter.write("What is the Client Phone Number?: " + '\n');
clientWriter.flush();
if((answer = clientReader.readLine()) != null){
System.out.println("Response from Client " + answer);
writeToFile.write("Phone Number: " + answer + '\n');
}
while(!clientReader.readLine().equals("Client ready for message...")){}
clientWriter.write("What is the Client Email Address?: " + '\n');
clientWriter.flush();
if((answer = clientReader.readLine()) != null){
System.out.println("Response from Client " + answer);
writeToFile.write("Email Address: " + answer + '\n');
}
while(!clientReader.readLine().equals("Client ready for message...")){}
clientWriter.write("Add more users? (yes or any for no)" + '\n');
clientWriter.flush();
String addUsers = null;
if((addUsers = clientReader.readLine()) != null){
System.out.println("Response from Client " + answer);
if(!addUsers.equals("yes")){
socket.close();
client_info = false;
System.out.println("Connection ended.");
}
}
}
clientReader.close();
writeToFile.close();
}
} catch(Exception e){e.printStackTrace();}
}
}