В настоящее время я программирую систему чата, используя ServerSocket
и Socket
с JFrame
пользовательским интерфейсом. Но я борюсь с чтением из Socket Stream.
Вот мой код сервера:
ServerSocket serverSocket = new ServerSocket(PORT);
Socket socket;
systemStatus.append(displayStatus("Server starts on port: ") + serverSocket.getLocalPort() + "\n");
while (true) {
socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
while (true) {
String line = in.readLine();
while (line != null) {
line = in.readLine();
systemStatus.append(line);
}
}
}
и код кнопки отправки на клиенте:
log_regButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
String login = log_loginField.getText().trim();
String pw = log_pwordField.getText().trim();
out.write(login + "\n" + pw+"\n");
out.flush();
}
});
который systemStatus
является JTextArea
. Предполагается, что текст из JTextField
будет отображаться в кадре клиента. Но это не так. Может ли кто-нибудь показать мне, что я делаю не так?