0% found this document useful (0 votes)
11 views

java pdf

Java codes

Uploaded by

saimishra32
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

java pdf

Java codes

Uploaded by

saimishra32
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

import java.io.

*;
import java.net.*;
import java.util.*;

public class ChatServer {


private static final int PORT = 12345; // Server port
private static Set<PrintWriter> clientWriters = new HashSet<>();

public static void main(String[] args) {


System.out.println("Chat Server is running...");
try (ServerSocket serverSocket = new ServerSocket(PORT)) {
while (true) {
new ClientHandler(serverSocket.accept()).start();
}
} catch (IOException e) {
System.err.println("Error starting server: " + e.getMessage());
}
}

private static class ClientHandler extends Thread {


private Socket socket;
private PrintWriter out;

public ClientHandler(Socket socket) {


this.socket = socket;
}

@Override
public void run() {
try (BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
out = new PrintWriter(socket.getOutputStream(), true);
synchronized (clientWriters) {
clientWriters.add(out);
}
String message;
while ((message = in.readLine()) != null) {
System.out.println("Received: " + message);
broadcastMessage(message);
}
} catch (IOException e) {
System.err.println("Error handling client: " + e.getMessage());
} finally {
try {
socket.close();
} catch (IOException e) {
System.err.println("Error closing socket: " + e.getMessage());
}
synchronized (clientWriters) {
clientWriters.remove(out);
}
}
}

private void broadcastMessage(String message) {


synchronized (clientWriters) {
for (PrintWriter writer : clientWriters) {
writer.println(message);
}
}
}
}
}

import java.io.*;
import java.net.*;
import javax.swing.*;

public class ChatClient {


private static final String SERVER_ADDRESS = "localhost"; // Server IP
private static final int SERVER_PORT = 12345;

public static void main(String[] args) {


JFrame frame = new JFrame("Chat Client");
JTextArea chatArea = new JTextArea(20, 50);
JTextField chatField = new JTextField(50);
chatArea.setEditable(false);
frame.getContentPane().add(new JScrollPane(chatArea), "Center");
frame.getContentPane().add(chatField, "South");
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

try (Socket socket = new Socket(SERVER_ADDRESS, SERVER_PORT);


BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true)) {

// Thread to read messages from server


Thread listener = new Thread(() -> {
try {
String message;
while ((message = in.readLine()) != null) {
chatArea.append(message + "\n");
}
} catch (IOException e) {
System.err.println("Error reading from server: " + e.getMessage());
}
});
listener.start();

// Send messages to the server


chatField.addActionListener(event -> {
out.println(chatField.getText());
chatField.setText("");
});
} catch (IOException e) {
System.err.println("Error connecting to server: " + e.getMessage());
}
}
}

You might also like