Onde esta sendo gerado o .NullPointerException?

pessoal aparece essa mensagem NullPointerException

me ajudem por favor ! o que eu faço ! esta ai meu script

import java.net.;
import javax.swing.
;
import java.util.*;

public class msg{
public static void main (String[] args ) throws Exception{

       int[] r    = new int[6];
       int[] num  = new int[6];
      
            InetAddress address = InetAddress.getByName("192.168.22.194");
            DatagramSocket udp = new DatagramSocket(2000); //escolhe qquer porta
    System.out.println(InetAddress.getLocalHost()); //meu ip
    byte[] buff = new byte[64];
    DatagramPacket packin = new DatagramPacket(buff,buff.length);
            DatagramPacket packout= new DatagramPacket(null,0);
            packout.setPort(2000);
           
            for (int j = 1; j <= 6; j++){           
                 r[j-1] = 1 + (int) (Math.random() * 9);
                
    }
            Arrays.sort(r);
           
            while(true){

        //receber
                    Arrays.fill(buff,(byte)0);
        udp.receive(packin);
        String S = new String(packin.getData()).trim();
        StringTokenizer st = new StringTokenizer(S," ,:;-");
                    System.out.println(S);
        System.out.println();
                   
                    for (int i = 1; i <= 6; i++){
          
                       String x = st.nextToken();                               
                       num[i-1] = Integer.parseInt(x);
                       if(num[i-1] < 1 || num[i-1]>10){
                          S = "numeros inválidos no seu jogo!";
                          packout.setData(S.getBytes());
                          packout.setAddress(packin.getAddress());
                          break;
                       }
                    }
           
                    Arrays.sort(num);
          
                    int acerto=0;
                    for (int j = 1; j <= 6; j++){           
                          if(r[j-1] == num[j-1]) acerto++;
                    }
                  
                   
                    // Comparação de acertos
                    if (acerto==6){
                          S = "O número sorteado foi " + Arrays.toString(r) + "\n PARABÉNS!!!! Você é o mais  novo ganhador";
                    }
                   
                    else{
                          S = "O número sorteado foi " + Arrays.toString(r) + "\ne seu jogo foi " + Arrays.toString(num) +"\nNão foi dessa vez ";
                    }
                   
                    packout.setData(S.getBytes());
                    packout.setAddress(packin.getAddress());
           
                   

    }
}

}

Amigo o problema está nesta linha

DatagramPacket packout = new DatagramPacket(null, 0);

Verificando o construtor, o mesmo precisa de um buffer “byte[] buf” e você está passando null.
Você vai precisar passar um buffer para este construtor.

Seria interessante também olhar o JavaDoc para ter mais conhecimento sobre esta classe

Valeu amigo vou tentar

Recomendo ainda a leitura desse tópico