Вопрос пользователя:
Ответ нейросети:
Пример кода для клиентского приложения:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ChatClient extends JFrame {
private JTextArea chatHistory;
private JTextField messageField;
private JButton sendButton;
private Socket socket;
private PrintWriter out;
private BufferedReader in;
public ChatClient() {
chatHistory = new JTextArea();
messageField = new JTextField();
sendButton = new JButton("Send");
sendButton.addActionListener(e -> sendMessage());
add(chatHistory, BorderLayout.CENTER);
add(messageField, BorderLayout.SOUTH);
add(sendButton, BorderLayout.EAST);
setTitle("Chat Client");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try {
socket = new Socket("localhost", 12345);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
chatHistory.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void sendMessage() {
String message = messageField.getText();
out.println(message);
chatHistory.append("Me: " + message + "\n");
messageField.setText("");
try (BufferedWriter writer = new BufferedWriter(new FileWriter("chat_history.txt", true))) {
writer.write("Me: " + message + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ChatClient();
}
}
Пример кода для серверного приложения:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ChatServer {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(12345)) {
System.out.println("Server started. Waiting for clients...");
Socket clientSocket = serverSocket.accept();
System.out.println("Client connected: " + clientSocket);
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println("Client: " + line);
out.println("Server: " + line);
try (BufferedWriter writer = new BufferedWriter(new FileWriter("chat_history.txt", true))) {
writer.write("Client: " + line + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Это простой пример клиент-серверного чата на Java. При отправке сообщения с клиента на сервер, оно отображается как история чата и записывается в файл "chat_history.txt".
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.