1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| while (true){
if (! bAreWeConnected){
soc = s.accept();
in = soc.getInputStream();
//lecture du premier octet de connexion (RFC1086)
in.read(fonction, 0, 1);
logger.log(Level.INFO, "recu trame de connexion RFC1086 (1er octet) : " + HexaTools.getHexString(fonction));
//lecture de la trame de connexion (RFC1086) 48 octets
in.read(trameRFC1086, 0, 48);
logger.log(Level.INFO, "recu trame de connexion RFC1086 (suite) : " + HexaTools.getHexString(trameRFC1086));
bAreWeConnected = true;
}
//lecture de la couche RFC1006 : 4 octets
in.read(coucheRFC1006, 0, 4);
logger.log(Level.INFO, "recu couche RFC1006 : " + HexaTools.getHexString(coucheRFC1006));
int nb = coucheRFC1006[3] & 0xFF;
nb += (coucheRFC1006[2] & 0xFF) * 256;
message = new byte[nb - 4];
in.read(message, 0, nb - 4); //4 octets pour la couche RFC1006, à ne pas lire
logger.log(Level.INFO, "recu coucheTransport + messageApplicatif: " + HexaTools.getHexString(message));
//on récupère l'identifiant du message reçu
String sIdentifiantMessage = new String(message, 6, 4);
logger.log(Level.INFO, "identifiant message recu : " + sIdentifiantMessage);
FileInputStream inCB, inTPE;
Properties propCB, propTPE;
OutputStream out = new DataOutputStream(soc.getOutputStream());
propCB = new Properties();
propTPE = new Properties();
try {
inCB = new FileInputStream("/data/conf/SimulateurTPE_CB.conf");
propCB.load(inCB);
inCB.close();
inTPE = new FileInputStream("/data/conf/SimulateurTPE_TPE.conf");
propTPE.load(inTPE);
inTPE.close();
} catch (FileNotFoundException ex) {
logger.log(Level.ERROR, ex);
}
catch (IOException ex) {
logger.log(Level.ERROR, ex);
}
if (sIdentifiantMessage.equals("1101")){
MessageApplicatif1102 message1102 = formerMessage1102(propCB, propTPE);
message1102.envoyerAuServeur(false, out);
}
//in.close();
//soc.close();
} |
Partager