Hello!
j'essaie de simuler un échange client-serveur à travers les sockets, et ce en utilisant la sérialisation. Je dois faire qqch de faux dans la transmission de mon objet, parce que quand je veux lire depuis le serveur un objet envoyé par le client, c'est comme si l'objet (en l'occurence un tableau de byte) n'existait pas.
La classe d'échange entre le client et le serveur.
Le client, qui émet un objet à destination du serveur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import java.util.*; import java.io.*; public class Echange implements Serializable { private byte[] test; public void setTest(byte[] testTable) { this.test = testTable; } public byte[] getTest() { return test; } }
Le code du serveur, censé réceptionné le tableau du client.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 import java.io.*; import java.net.*; import java.security.*; import java.security.spec.*; import javax.crypto.*; import javax.crypto.spec.*; import java.util.*; public class DHClient { public static void main(String[] args) throws Exception { Echange transfert = new Echange(); //la connexion entre le serveur est le client a été initialisée. Le but est maintenant de transmettre ce tableau de bytes au serveur. byte[] testNumber = new byte[150]; testNumber[0] = 4; transfert.setTest(testNumber); System.out.println("nb test = " + transfert.getTest()[0]); out.writeObject(transfert);
C'est ce dernier bout qui pose problème. Il ne doit pas reconnaître l'objet puisqu'il donne une "NullPointerException"... ce n'est pas un problème de socket ou de connexion, parce que des variables envoyées seules passent sans problème. C'est bien la sérialisation qui pose problème, j'ai l'impression... quelqu'un peut-il m'aider?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import java.security.spec.*; import javax.crypto.*; import javax.crypto.spec.*; import java.util.*; public class DHServer { public static int port = 8080; public static void main(String[] args) throws Exception { Echange transfert = new Echange(); // la connexion a été créée byte[] test = new byte[10]; System.out.println("valeur test = " + transfert.getTest()[0] );
D'avance, merci à lui!
Sébastien
Partager