supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Comparateur de prix| Dossiers| Forums| Jeux| Google

6 messages
ok

Transférer un Integer en UDP

:hello:

Je cherche à transférer un entier en UDP (DatagramPacket, DatagramSocket).

Le problème est que DatagramPacket veut un tableu de byte, et un entier prend 4 bytes.

Comment faire pour passer cet entier en UDP ?
J'ai tenté ceci :

Code :
	private static byte[] intToBytes(int i) {
		byte[] dword = new byte[4];
		dword[0] = (byte) ((i >> 24) & 0xFF);
		dword[1] = (byte) ((i >> 16) & 0xFF);
		dword[2] = (byte) ((i >> 8) & 0xFF);
		dword[3] = (byte) (i & 0xFF);
		return dword;
	}

Code :
	private static int bytesToInt(byte[] b) {
		int ret;
		
		ret = (b[0] << 24) & (b[1] << 16) & (b[2] << 8) & b[0];
		
		return ret;
	}


intToBytes à l'air de fonctionner, mais bytesToInt me retourne toujours 0.

Comment faire ?

Merci :)
Edité le 07/10/2007 à 15:14
 
 
avec un upcast?
ou un peu plus de variables?
int int1 = (int)(b[0]<<24)
int int = (int)(b[0]<<16)
....
ret = int1 & int2...
 
 
Code :
		private static int bytesToInt(byte[] b) 
		{ 
			int ret; 
			
			ret = (b[0] & 0xFF) << 24;
			ret += (b[1] & 0xFF) << 16;
			ret += (b[2] & 0xFF) << 8;
			ret += (b[3] & 0xFF);			
			
			return ret; 
		}


Ca fait une semaine que j'ai commencé le Java, c'est un des premiers truc que j'ai fait (avec des méthodes pour avoir des primitifs signés) :p
 
 
tain, chui trop bete, faire un '&' bit a bit va forcement donner 0
0000 & 0101 = 0000 :pfff: :riva:

il faut fair un ou logique
 
 
toutafé :oui: (pour le ou logique d'où le +)
 
 
KarLKoX a écrit:

Ca fait une semaine que j'ai commencé le Java, c'est un des premiers truc que j'ai fait (avec des méthodes pour avoir des primitifs signés) :p

Bah j'en avais jamais eu besoin :]
jmgchouchou a écrit:
tain, chui trop bete, faire un '&' bit a bit va forcement donner 0
0000 & 0101 = 0000 :pfff: :riva:

il faut fair un ou logique

Comme je me sens con :paf:

merci aux deux !
 
 
 
6 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com