allora credo di aver capito meglio il mio problema, la codifica è errata perchè usa solo 7 bit e poi ha valori sui. Quindi ho pensato di trasmettere direttamente in byte e i numeri superiori a 127 li trasformo nel loro equivalente negativo in complemento a 2, cioè faccio valore-256, ora mi sorge un ulteriore problema, non mi funziona il codice
ho creato questa classe
e l'ho usata in questo modocodice:public class Convertitore { public static int CONVERSORE = 256; public byte ConvertitoreValore(int i) { if (i>127) return (byte) (i-CONVERSORE); else return (byte) i; } }
ora mi da i seguenti erroricodice:public void Connessione(String ip, int port) throws UnknownHostException, IOException { Socket socket = new Socket(ip, port); if ( socket.isConnected()) System.out.println("Connection established"); else System.out.println("Connection not established"); byte[] arrayChar = new byte[6]; arrayChar[0] = valore.ConvertitoreValore(128); arrayChar[1] = (byte) valore.ConvertitoreValore(129); arrayChar[2] = (byte) valore.ConvertitoreValore(3); arrayChar[3] = (byte) valore.ConvertitoreValore(128); arrayChar[4] = (byte) valore.ConvertitoreValore(128); arrayChar[5] = (byte) valore.ConvertitoreValore(128); System.out.println(arrayChar); System.out.println((byte) arrayChar[1]); System.out.println((byte) arrayChar[5]); PrintWriter toServer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true); BufferedReader fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream())); toServer.print(arrayChar); toServer.flush(); socket.close(); }
dopo la riga di codicecodice:Exception in thread "main" java.lang.NullPointerException at connessione.ConnessioneSocket.Connessione(ConnessioneSocket.java:29) at connessione.Activity.main(Activity.java:14)
avete idea del motivo?codice:arrayChar[0] = valore.ConvertitoreValore(128);

Rispondi quotando