Vous devriez probablement concevoir votre code pour séparer le message que vous voulez manipuler dans Java du format de niveau de fil dont vous avez besoin de lire/écrire.
par exemple. Si vous avez un concept screenresolution, vous pouvez le représenter en Java avec une classe screenresolution:
public class ScreenResolution {
public int height;
public int width;
}
Cette classe est facile de travailler avec Java. Transformer ceci en un paquet qui peut être transmis sur un réseau/enregistré dans un fichier, etc. selon un format de fichier ou un protocole est une autre préoccupation. Dites la hauteur et la largeur doit être aménagé en 3 octets chacun, avec une pièce d'identité et de la longueur pour le « format fil », vous faites quelque chose comme
public byte[] marshalScreenResolution(ScreenResolution obj) {
byte[] buf = new byte[9];
//length of this packet, 2 bytes
buf[0] = 0;
buf[1] = 9;
buf[2] = SCREENRESOLUTION_OPCODE;
//marshal the height/width , 3 least significant bytes.
buf[3] = (obj.height&0xff0000) >> 16;
buf[4] = (obj.height&0x00ff00) >> 8;
buf[5] = (obj.height&0x0000ff) ;
buf[6] = (obj.width&0xff0000) >> 16;
buf[7] = (obj.width&0x00ff00) >> 8;
buf[8] = (obj.width&0x0000ff) ;
return buf;
}
et vous faire une fonction demarshalScreenResolution pour aller d'un paquet à un objet ScreenResolution. Le point est que vous découplez la représentation en java de la représentation externe, et que vous assemblez les champs dans la représentation externe en utilisant des octets + quelques bits de base.
Par "toutes les réponses ci-dessus" il signifie des réponses sur http://stackoverflow.com/questions/1098097/how-can-i-assign-2-bytes-to-a-variable-in-java –
Cela ne devrait pas être sa propre question; Allez modifier l'original http://stackoverflow.com/questions/1098097 à la place. Pour ce faire, vous devez vous connecter avec le même compte que vous avez utilisé pour créer l'autre question (actuellement, vous êtes partagé entre les ID utilisateur 134939 et 135155), voir http://stackoverflow.com/questions/53598 si vous avez besoin d'aide pour cette. – ephemient
Vous voudrez probablement changer le nom de cette question en quelque chose comme "Concevoir un protocole au niveau des octets en Java". Idk ... "Octets en Java?" est vraiment mauvais cependant. – Tom