Using java Create a chat client, and chat server. The chat client must be able t
ID: 3824392 • Letter: U
Question
Using java
Create a chat client, and chat server. The chat client must be able to communicate with other chat clients on separate computers on your local network. Do not use 127.0.0.1 this will only respond to commands on one machine. The chat server must be able to communicate the client packets to the other chat clients connected, append their message to a jtxtarea,a nd have a jxtextarea for messages. Essentially create a LAN chat room for all available computers that you have. Please test if the application works on multiple machines if it doesnt then it fails
TLDR: When two people are in the same chat room, you can see all messages each client types on one chat client.
EXAMPLE
Computer1: Runs chat server
Runs chat client
*type something*
>Computer1:Client== Hi there
Computer2: Runs client
>Computer1:Client== Hi there
Explanation / Answer
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class TCPClient {
public static void main(String argv[]) throws Exception {
String word;
String wordsent;
BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
Socket clientSocket = new Socket("localhost", 6789);
while (true) {
DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader( new InputStreamReader( clientSocket.getInputStream()));
word = inFromUser.readLine();
outToServer.writeBytes(word + ' ');
if (word.equals("EXIT")) {
break;
}
wordsent = inFromServer.readLine();
System.out.println("FROM SERVER: " + wordsent);
}
clientSocket.close();
}
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class TCPServer {
public static void main(String argv[]) throws Exception {
ServerSocket socket = new ServerSocket(6789);
Responder h = new Responder();
while (true) {
Socket connSocket = socket.accept();
Thread t = new Thread(new ChatServer(h,connSocket));
t.start();
}
}
}
class ChatServer implements Runnable {
Responder resp;
Socket socketConnection;
public ChatServer(Responder r, Socket connSocket) {
this.resp = r;
this.socketConnection = connSocket;
}
@Override
public void run() {
while (resp.responderMethod(socketConnection)) {
try {
Thread.sleep(2000);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
}
try
{
socketConnection.close();
}
catch (IOException ex) {
System.out.println("Exception occured: "+ex.toString());
}
}
}
class Responder {
String word;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
synchronized public boolean responderMethod(Socket connectionSocket) {
try {
BufferedReader inFromClient = new BufferedReader( new InputStreamReader( connectionSocket.getInputStream()));
DataOutputStream outToClient =new DataOutputStream(connectionSocket.getOutputStream());
String clientSentence = inFromClient.readLine();
if (clientSentence == null || clientSentence.equals("EXIT")) {
return false;
}
if (clientSentence != null) {
System.out.println("client : " + clientSentence);
}
word = br.readLine() + " ";
outToClient.writeBytes(word);
return true;
}
catch (SocketException e) {
System.out.println("Disconnected from the server");
return false;
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.