我正在尝试使用BufferedWriter
从客户端或服务器向客户端发送消息到服务器。但是没有任何东西会发送,但是如果你向它发送消息它会听。我不确定我做错了什么,但我认为问题出在这里。
ActionListener buttonActive= new ActionListener(){
public void actionPerformed(ActionEvent e) {
messageTextArea.append(textMessage.getText()+ "\n");
sendText = textMessage.getText();
}
};
sendButton.addActionListener(buttonActive);
private void startSending(){
SwingWorker <Void, Void> sendingThread = new SwingWorker <Void, Void>(){
protected Void doInBackground() throws Exception {
BufferedWriter writer = null;
writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
while(connected){
writer.write(sendText);
writer.flush();
}
return null;
}
};
sendingThread.execute();
}
@trashgod和@madProgrammer给了我一个使用printWriter的解决方案,但我希望我使用BufferedWriter
+ BufferedReader
,OutputStream+ InputStream
和BufferedWriter
制作更多版本+ PrintWriter
,但我想制作BufferedWriter
+ BufferedReader
。
答案 0 :(得分:1)
您的代码确实发送了数据。也许客户正在呼叫readLine()
?由于您没有发送行终止符,它将永远阻止。
但是你的代码没有多大意义。在循环中编写相同的文本可能不是您的意图。并没有PrintReader
这样的东西。