Perl
x=1
y=222
java
x=257
y=222
Je comprends que je ne peux mettre qu'un nombre entier compris entre 0 et 256 dans un octet. Comment envoyer un entier supérieur à 256 dans un pack(C*)
ou byte[][]
?Valeur erronée dans le tableau Byte via le socket Perl et Java
$data = $n->read($data2, 6);
@arr = unpack("C*", $data2);
Parfois, quand j'envoie une valeur de Perl à Java, je prends une valeur négative dans le côté Java, le problème est que je veux garder tableau d'octets uniquement.
Voici le code java de mousePressed sur la balançoire (je veux envoyer au serveur le clic en cours)
public void mousePressed(MouseEvent e) {
Point p = e.getPoint();
byte[] buff = new byte[]{02,00,(byte)p.x,(byte)p.y,00,00};
//write buff on my socket
de Merci
Si 'x' est un octet en Java, il ne peut pas avoir peut-être la valeur 257. Les valeurs des octets non signés sont compris entre 0 et 255. Et je crois que toutes les primitives Java sont signées, si Java octets vont de - 128 à 127. Veuillez publier le code Java qui écrit cette sortie. – cdhowie
La première chose qui est venue à l'esprit était dataoutputstream côté java, mais je pense que vous devriez éviter d'utiliser dataoutputstream ici ... – khachik
@cdhowie, nous ne mentionnerons pas char, ou boolean. ;) –