Slip No.1
B) Write a socket program in java for chatting application.(Use Swing)1. Server Code
-
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;
public class ChatServer {
public static void main(String[] args) {
JFrame frame = new JFrame("Server Chat");
JTextArea chatArea = new JTextArea();
JTextField inputField = new JTextField();
JButton sendButton = new JButton("Send");
chatArea.setEditable(false);
frame.setLayout(new BorderLayout());
frame.add(new JScrollPane(chatArea), BorderLayout.CENTER);
JPanel panel = new JPanel(new BorderLayout());
panel.add(inputField, BorderLayout.CENTER);
panel.add(sendButton, BorderLayout.EAST);
frame.add(panel, BorderLayout.SOUTH);
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
try (ServerSocket serverSocket = new ServerSocket(12345);
Socket socket = serverSocket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true)) {
chatArea.append("Client connected\n");
sendButton.addActionListener(e -> {
String message = inputField.getText();
if (!message.isEmpty()) {
writer.println("Server: " + message);
chatArea.append("You: " + message + "\n");
inputField.setText("");
}
});
String line;
while ((line = reader.readLine()) != null) {
chatArea.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. Client Code
-
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.net.*;
public class ChatClient {
public static void main(String[] args) {
JFrame frame = new JFrame("Client Chat");
JTextArea chatArea = new JTextArea();
JTextField inputField = new JTextField();
JButton sendButton = new JButton("Send");
chatArea.setEditable(false);
frame.setLayout(new BorderLayout());
frame.add(new JScrollPane(chatArea), BorderLayout.CENTER);
JPanel panel = new JPanel(new BorderLayout());
panel.add(inputField, BorderLayout.CENTER);
panel.add(sendButton, BorderLayout.EAST);
frame.add(panel, BorderLayout.SOUTH);
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
try (Socket socket = new Socket("localhost", 12345);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true)) {
sendButton.addActionListener(e -> {
String message = inputField.getText();
if (!message.isEmpty()) {
writer.println("Client: " + message);
chatArea.append("You: " + message + "\n");
inputField.setText("");
}
});
String line;
while ((line = reader.readLine()) != null) {
chatArea.append(line + "\n");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
1. Compile and run the server program first.
2. Compile and run the client program.
3. Type messages in either window and see them reflected in both.
No comments:
Post a Comment