Skip to content
Snippets Groups Projects
Commit 4c5d3a4b authored by coltonfetterolf's avatar coltonfetterolf
Browse files

No commit message

No commit message
parent a8386e8a
No related branches found
No related tags found
No related merge requests found
......@@ -17,22 +17,23 @@ import java.net.*;
public class FetterolfHomework2Client {
// IPv6 String constant for localhost address, similarly IPv4 127.0.0.1
public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
public final static String LOCALHOST = "0:0:0:0:0:0:0:1";
public static void main(String[] args) {
String serverMessage;
// Local vars/fields
Socket socket;
InputStream is;
InputStreamReader isr;
BufferedReader br;
String serverMessage;
OutputStream os;
try {
System.out.println("Answer this question.");
System.out.println("What is the best country in the world?");
while (true) {
System.out.println("Creating socket connection...");
// We request an IP to connect to ("localhost") and
// port number at that IP (2317). This establishes
// a connection to that IP in the form of a Socket
......@@ -41,38 +42,32 @@ public class FetterolfHomework2Client {
socket = new Socket(LOCALHOST, 2317); // locohost?
// Now hook everything up (i.e. set up the streams), Java style:
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
is = socket.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
is = socket.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
// Read a single line written by the server. We'd
// do things a bit differently if there were many lines to be read
// from the server instead of one only.
serverMessage = br.readLine();
System.out.println(serverMessage + "?" + "\n" + "No way");
System.out.println("Try again.");
//String update = br.readLine();
// String sendUpdate = update + "\n";
//System.out.println("The correct answer is MERICA");
System.out.println("==================================================");
System.out.println("My name is the client!");
System.out.println(serverMessage);
//continue;
// socket gets closed, either automatically/silently by this code (or possibly by the server)
} // end while(true)
} catch (IOException e) {
System.err.println("Problem with TcpExample3ServerClient networking:"); // describe what is happening
System.err.println("Error: " + e);
// Provide more helpful information to user if exception occurs due to running twice at one time
if (e instanceof java.net.BindException) {
System.err.println("*** Be sure to stop any other running instances of programs using this port!");
}
}
} finally {
finally {
// program exit: tell somebody about that
System.out.println("\nclient exit");
}
......
......@@ -27,54 +27,65 @@ public class FetterolfHomework2Server {
public static void main(String[] args) {
try {
System.out.println("Server has started..."); // it helps debugging to put this on console first
// ServerSocket waits for a connection from a client.
// Notice that it is outside the loop; ServerSocket
// needs to be made only once.
System.out.println("TcpExample3Server has started..."); // it helps debugging to put this on console first
ServerSocket serverSocket = new ServerSocket(2317);
while (true) {
Socket clientConnection = serverSocket.accept();
OutputStream os = clientConnection.getOutputStream();
PrintStream ps = new PrintStream(os);
ps.println("Venezuela");
// Print some information locally about the Socket
// connection. This includes the port and IP numbers
// on both sides (the socket pair.)
InetAddress localAddress = clientConnection.getLocalAddress();
InetAddress remoteAddress = clientConnection.getInetAddress();
int localPort = clientConnection.getLocalPort();
int remotePort = clientConnection.getPort();
// My socket pair connection looks like this, to localhost:
// Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
// Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
//
// Why is the first IP/port the same, while the second set has
// different ports?
System.out.println("Socket pair: (( " + localAddress.toString().trim() + ", " + localPort + " ), ( "
+ remoteAddress.toString() + ", " + remotePort + " ))");
InputStream is = clientConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String serverMessage = br.readLine();
System.out.println("This time try " + serverMessage);
// Notice the use of flush() and close(). Without
// the close() to Socket object may stay open for
// a while after the client has stopped needing this
// connection. Close() explicitly ends the connection.
ps.flush();
clientConnection.close();
OutputStream os;
PrintStream ps;
InputStream is;
InputStreamReader isr;
BufferedReader br;
String clientResponse;
InetAddress localAddress, remoteAddress;
int localPort, remotePort;
// Server is up and waiting (i.e. "blocked" or paused)
// Loop, infinitely, waiting for client connections.
// Stop the program somewhere else.
while (true) {
// block until connected to a client
try (Socket clientConnection = serverSocket.accept()) {
// Now hook everything up (i.e. set up the streams), Java style:
os = clientConnection.getOutputStream();
is = clientConnection.getInputStream();
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
ps = new PrintStream(os);
ps.println("The server says 'Yo, what up?'"); // this gets sent back to client!
clientResponse = br.readLine();
// Print some information locally about the Socket connection.
// This includes the port and IP numbers on both sides (the socket pair).
localAddress = clientConnection.getLocalAddress();
remoteAddress = clientConnection.getInetAddress();
localPort = clientConnection.getLocalPort();
remotePort = clientConnection.getPort();
// My socket pair connection looks like this, to localhost:
// Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54876 ))
// Socket pair: (( /0:0:0:0:0:0:0:1, 2317 ), ( /0:0:0:0:0:0:0:1, 54881 ))
// Why is the first IP/port the same, while the second set has different ports?
System.out.println("TheServer socket pair: (( " + localAddress.toString() + ", " + localPort + " ), ( "
+ remoteAddress.toString() + ", " + remotePort + " ))");
//Prints message from client
System.out.println(clientResponse);
// Notice the use of flush() and try w/ resources. Without
// the try w/ resources the Socket object may stay open for
// a while after the client has stopped needing this
// connection. try w/ resources explicitly ends the connection.
ps.flush();
// like it or not, you're outta here!
}
}
} catch (IOException e) {
System.err.println("Problem with Server networking: " + e);
System.err.println("Problem with TcpExample3Server networking: " + e);
// Provide more helpful information to user if exception occurs due to running twice at one time
if (e instanceof java.net.BindException) {
......
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