我正在尝试使用服务器和客户端之间的套接字编程来发送/接收布尔值。但是,当我在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());
}
}
}
}