0

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+ InputStreamBufferedWriterPrintWriterBufferedWriterBufferedReader

4

1 に答える 1

1

あなたのコードは実際にデータを送信します。多分クライアントが呼んでいreadLine()ますか?行末記号を送信していないため、永久にブロックされます。

しかし、あなたのコードはあまり意味がありません。ループで同じテキストを書くことは、あなたが意図したものではありません。そして、のようなものはありませんPrintReader

于 2013-02-06T00:26:25.113 に答える