Récupération de données

Résolu
ckoicedelire Messages postés 6 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 juin 2006 - 20 avril 2006 à 18:50
ckoicedelire Messages postés 6 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 juin 2006 - 21 avril 2006 à 14:37
Bonjour,

je réexplique mon problème :
je récupère des infos sur le réseau via un UdpClient =>

UdpClient client = new UdpClient("127.0.0.1",1500);
IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
byte[] r = client.Receive(RemoteIpEndPoint);

Le problème est que je récupère un tableau de byte et qu'il s'agit en fait d'une structure de données :

struct manette
{
double position;
double vitesse;
double theta0;
double bouton;
}

Comment est-il possible de récupéré l'info correctement et pourvoir exploité la position, vitesse etc...

Merci

2 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 avril 2006 à 04:24
Salut, il me semble pas qu'une fonction soit disponible dans le framework pour faire ce genre de chose, ou alors via Marshal.PtrToStructure en adaptant un peu ton code mais le plus rapide c'est d'utiliser les pointeurs :

struct Joypad
{
public double position;
public double vitesse;
public double theta;
public double bouton;
}

// Compile avec l'option -unsafe.
private static unsafe void GetData( )
{
// Un tableau de 32 bytes pour l'exemple.
byte[ ] buffer = new byte[ sizeof( Joypad ) ];

// On fixe le tableau en mémoire.
fixed ( byte* pBuffer = buffer )
{
// On caste le pointeur.
Joypad* pJoy = ( Joypad* )pBuffer;


// Ecriture
pJoy->position = 10.0;
pJoy->vitesse = 20.0;


// Lecture
Console.WriteLine( pJoy->position );
Console.WriteLine( pJoy->vitesse );
}


Console.Read( );
}
3
ckoicedelire Messages postés 6 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 8 juin 2006
21 avril 2006 à 14:37
Franchement merci tu me sauve la vie :)
0
Rejoignez-nous