1

ボイス チャット プログラムを作成していますが、OptionalDataExceptionエラーが発生しました。音声を追加する前は、コードでこの問題は発生していませんでした。音声通信は別のソケットで処理されるため、問題はありません。

コード:

    public class Client implements Runnable {                                                   // CLIENT
    private String msg;
    public void run() {
        try {
            s1 = new Socket(ipAddress, port);
            s2 = new Socket(ipAddress, 1210);
            o1 = new ObjectOutputStream(s1.getOutputStream());
            o1.writeObject(name);
            serverListModel.addElement(name);
            i1 = new ObjectInputStream(s1.getInputStream());
            Thread voice = new Thread(new ClientAudio());
            voice.start();
            while(true) {
                msg = (String) i1.readObject();
                    String[] namePart = msg.split("-");
                    if(namePart[0].equals("AddName") && !namePart[1].equals(name) && !serverListModel.contains(namePart[1])) {
                        serverListModel.addElement(namePart[1]);
                    }
                    if(namePart[0].equals("RemoveName") && !namePart[1].equals(name)) {
                        serverListModel.removeElement(namePart[1]);
                    }
                    if(!msg.equals(null) && !namePart[0].equals("AddName") && !namePart[0].equals("RemoveName")) {
                        chatWindow.append(msg+"\n");
                    }
                }
        } catch (IOException | ClassNotFoundException e) {
            chatWindow.append("Server Closed");
            e.printStackTrace();
            try {
                s1.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            mainWindow(true);
        }
    }
}


flag

それは投げられmsg = (String) i1.readObject();、それは言う

java.io.OptionalDataException
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1361)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at client.chat$Client.run(chat.java:319)
at java.lang.Thread.run(Thread.java:745)
4

1 に答える 1