Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please create a chat window application using Javafx and the client server code provided in // Client.java import java.io.*; import java.net.*; public class Client {

Please create a chat window application using Javafx and the client server code provided in

//Client.java

import java.io.*;

import java.net.*;

public class Client

{

public static void main(String[] args)

{

try

{

Socket sock = new Socket("localhost", 444);

SendThread sendThread = new SendThread(sock);

Thread thread = new Thread(sendThread);

thread.start();

RecieveThread recieveThread = new RecieveThread(sock);

Thread thread2 = new Thread(recieveThread);

thread2.start();

} catch (Exception e)

{

System.out.println(e.getMessage());

}

}

}

class RecieveThread implements Runnable

{

Socket sock = null;

BufferedReader recieve = null;

public RecieveThread(Socket sock)

{

this.sock = sock;

}// end constructor

public void run()

{

try

{

recieve = new BufferedReader(new InputStreamReader(this.sock.getInputStream()));// get inputstream

String msgRecieved = null;

while ((msgRecieved = recieve.readLine()) != null)

{

System.out.println("From Server: " + msgRecieved);

System.out.println("Please enter something to send to server..");

}

} catch (Exception e)

{

System.out.println(e.getMessage());

}

}// end run

}// end class recievethread

class SendThread implements Runnable

{

Socket sock = null;

PrintWriter print = null;

BufferedReader brinput = null;

public SendThread(Socket sock)

{

this.sock = sock;

}// end constructor

public void run()

{

try

{

if (sock.isConnected())

{

System.out.println("Client connected to "+ sock.getInetAddress() + " on port " + sock.getPort());

this.print = new PrintWriter(sock.getOutputStream(), true);

while (true)

{

System.out.println("Type your message to send to server..type 'EXIT' to exit");

brinput = new BufferedReader(new InputStreamReader(System.in));

String msgtoServerString = null;

msgtoServerString = brinput.readLine();

this.print.println(msgtoServerString);

this.print.flush();

if (msgtoServerString.equals("EXIT"))

break;

}// end while

sock.close();

}

} catch (Exception e)

{

System.out.println(e.getMessage());

}

}// end run method

}// end class

Server.java

import java.io.*;

import java.net.*;

import java.lang.*;

public class Server

{

public static void main(String[] args) throws IOException

{

final int port = 444;

System.out.println("Server waiting for connection on port " + port);

ServerSocket ss = new ServerSocket(port);

Socket clientSocket = ss.accept();

System.out.println("Recieved connection from " + clientSocket.getInetAddress() + " on port "

+ clientSocket.getPort());

// create two threads to send and recieve from client

RecieveFromClientThread recieve = new RecieveFromClientThread(clientSocket);

Thread thread = new Thread(recieve);

thread.start();

SendToClientThread send = new SendToClientThread(clientSocket);

Thread thread2 = new Thread(send);

thread2.start();

}

}

class RecieveFromClientThread implements Runnable

{

Socket clientSocket = null;

BufferedReader brBufferedReader = null;

public RecieveFromClientThread(Socket clientSocket)

{

this.clientSocket = clientSocket;

}// end constructor

public void run()

{

try

{

brBufferedReader = new BufferedReader(new InputStreamReader(

this.clientSocket.getInputStream()));

String messageString;

while (true)

{

while ((messageString = brBufferedReader.readLine()) != null)

{// assign

// message

// from

// client

// to

// messageString

if (messageString.equals("EXIT"))

{

break;// break to close socket if EXIT

}

System.out.println("From Client: " + messageString);// print

// the

// message

// from

// client

System.out.println("Please enter something to send back to client..");

}

this.clientSocket.close();

System.exit(0);

}

} catch (Exception ex)

{

System.out.println(ex.getMessage());

}

}

}// end class RecieveFromClientThread

class SendToClientThread implements Runnable

{

PrintWriter pwPrintWriter;

Socket clientSock = null;

public SendToClientThread(Socket clientSock)

{

this.clientSock = clientSock;

}

public void run()

{

try

{

pwPrintWriter = new PrintWriter(new OutputStreamWriter(

this.clientSock.getOutputStream()));// get outputstream

while (true) {

String msgToClientString = null;

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));// get userinput

msgToClientString = input.readLine();// get message to send to

// client

pwPrintWriter.println(msgToClientString);// send message to

// client with

// PrintWriter

pwPrintWriter.flush();// flush the PrintWriter

System.out.println("Please enter something to send back to client..");

}// end while

} catch (Exception ex)

{

System.out.println(ex.getMessage());

}

}// end run

}// end class SendToClientThread

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Logics For Databases And Information Systems

Authors: Jan Chomicki ,Gunter Saake

1st Edition

1461375827, 978-1461375821

More Books

Students also viewed these Databases questions

Question

1. Describe the factors that lead to productive conflict

Answered: 1 week ago