使用jFrame中的jButton MouseReleased事件在DataOutputStream中进行套接字编程NullPointerException

时间:2019-06-30 04:52:30

标签: java swing nullpointerexception jframe jbutton

我正在尝试使用服务器和客户端之间的套接字编程来发送/接收布尔值。但是,当我在jButtonMouseReleased中使用DataOutputStream writeBoolean()方法时,出现了NullPointerException。

我已经使用JFrame完成了聊天程序,并使用writeUTF和readUTF方法在服务器和客户端之间进行了套接字编程,并且使用jButtonActionPerformed和jTextFieldKeyPressed可以正常工作。

如何使用套接字发送/接收布尔值?

class Server extends jFrame{

    static Socket socket;
    static DataInputStream dataInputStream;
    static DataOutputStream dataOutputStream;

    static boolean playerTurn;

    public static void main(String args[]) {

       try {
            serverSocket = new ServerSocket(5555);
            socket = serverSocket.accept();
            System.out.println("client connected");

            dataInputStream = new DataInputStream(socket.getInputStream());
            dataInputStream = new DataInputStream(socket.getInputStream());

              while (true) {
                playerTurn = dataInputStream.readBoolean();
                serverLabel.setText(String.valueOf(playerTurn));
              }
            } catch (IOException e) {
            System.out.println(e.getMessage());
            }
    }

    private void jButton1MouseReleased(java.awt.event.MouseEvent evt) {                                       
        if (playerTurn == false) {
            playerTurn = true;
            try {
                dataOutputStream.writeBoolean(playerTurn); //this is where nullPointerException apear
            } catch (IOException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
} 

0 个答案:

没有答案