Skip to content
Snippets Groups Projects
Commit 64bf5136 authored by ekdem's avatar ekdem
Browse files

HW2

parent 5e0dc0ef
No related branches found
No related tags found
No related merge requests found
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package MV3500Cohort2018JulySeptember.homework2.Demchko;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
/**
*
* @author garrettloeffelman
*/
public class DemchkoClient {
public final static String LOCALHOST = "0:0:0:0:0:0:0:1"; // String constant, i.e. 127.0.0.1
public static void main(String[] args) {
try {
System.out.println("Answer this question:");
//This program establishes allows a client and server
//to send messages back and forth.
System.out.println("Why did the chicken cross the road?");
while (true) {
// 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 the Socket
// object; the server uses a ServerSocket to wait for
// connections.
Socket socket = new Socket(LOCALHOST, 2317); // this is the local host for the socket
// Read the single line written by the server. We'd
// do things a bit differently if many lines to be read
// from the server, instead of one only.
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String inputMessage = "To get to the other side";
//System.out.println("Joe says: Who's there? ");
String sendMessage = inputMessage + "\n";
bw.write(sendMessage);
bw.flush();
String input = br.readLine();
System.out.println(input + "\n" + input + " no.");
// String serverMessage = br.readLine();
System.out.println("Try again." ); // + serverMessage
String update = br.readLine();
// String sendUpdate = update + "\n";
System.out.println("The correct answer is to get to the other side");
} // end while(true)
} catch (IOException e) {
System.out.println("Problem with client: "); // describe what is happening
System.out.println(e);
}
// program exit
System.out.println("client exit");
}
}
deliverables/src/MV3500Cohort2018JulySeptember/homework2/Demchko/DemchkoOutput1.png

973 KiB

deliverables/src/MV3500Cohort2018JulySeptember/homework2/Demchko/DemchkoOutput2.png

974 KiB

package MV3500Cohort2018JulySeptember.homework2.Demchko;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
*
* @author garrettloeffelman
*/
public class DemchkoServer {
@SuppressWarnings("ConvertToTryWithResources")
public static void main(String[] args)
{
try {
// ServerSocket waits for a connection from a client.
// Notice that it is outside the loop; ServerSocket
// needs to be made only once.
ServerSocket serverSocket = new ServerSocket(2317);
// Loop, infinitely, waiting for client connections.
// Stop the program somewhere else.
while (true)
{
Socket clientConnection = serverSocket.accept(); // block until connected
OutputStream os = clientConnection.getOutputStream();
PrintStream ps = new PrintStream(os);
Scanner keyboard = new Scanner(System.in);
System.out.println("Why did the chicken cross the road?");
String message = keyboard.nextLine();
ps.println(message);
// 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() + ", " + 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(); // like it or not, you're outta here!
}
}
catch (IOException e) {
System.out.println("There is a problem with networking" + e);
}
}
}
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