java socket无法使用BufferedWriter发送消息

时间:2013-02-06 00:17:49

标签: java

我正在尝试使用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 + BufferedReaderOutputStream+ InputStreamBufferedWriter制作更多版本+ PrintWriter,但我想制作BufferedWriter + BufferedReader

1 个答案:

答案 0 :(得分:1)

您的代码确实发送了数据。也许客户正在呼叫readLine()?由于您没有发送行终止符,它将永远阻止。

但是你的代码没有多大意义。在循环中编写相同的文本可能不是您的意图。并没有PrintReader这样的东西。