begin process at 2010 02 09 18:51:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Réseau & Internet

 > 

demande d'aide sur socket


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

demande d'aide sur socket

jeudi 21 août 2008 à 16:28:56 | demande d'aide sur socket

lucillemargau

bonjour
 dans une partie de mon porjet je suis ramené à echanger des trames contenant ( taille,type,et contenue)
le problème ce que je ne sais pas comment je vais construire ma trame à l'envoi ni comment séparer chaque blocà la recéption, merci pour vôtre aide et vos liens utils

jeudi 21 août 2008 à 17:31:25 | Re : demande d'aide sur socket

fregolo52

Membre Club
Ca parait simple, donc je me dits que j'ai mal compris le pb.

tu crées un bloc mémoire contenant toutes tes données puis tu les balances avec send ou sento.
vendredi 22 août 2008 à 12:28:56 | Re : demande d'aide sur socket

lucillemargau

comment je vaus faire donc à la récéption??
vendredi 22 août 2008 à 14:49:47 | Re : demande d'aide sur socket

SebLinck

Salut,

Pour la réception tu lis les octets et tu cast dans le type que tu doit trouver.
Ou bien tu crées une structure contenant toutes les info de la réponse et
tu passes l'adresse de la structure au lieu de passer un buffer...

Moi je préfère passer une structure de buffer et faire un transtypage après
de chaque buffer (exemple pour réception udp de 3 octets):
dans le premier aotet le code d'erreur dans les deux suivant un entier sur deux octets:

  struct DEM{
    char rep;
    char alt[2];
    };
   DEM reponse;
   
   if ((Ret = recvfrom(ReceivingSocket, (char*)&reponse, sizeof(reponse), 0,
       (SOCKADDR *)&SenderAddr, &SenderAddrSize)) == SOCKET_ERROR)
   {
      printf("ERROR: recvfrom failed with error %d\n", WSAGetLastError());
      closesocket(ReceivingSocket);
      WSACleanup();
      return 0;
   }

int octet1_bin1 = (reponse.alt[0] & 0x1)  >> 0;
int octet1_bin2 = (reponse.alt[0] & 0x2)  >> 1;
int octet1_bin3 = (reponse.alt[0] & 0x4)  >> 2;
int octet1_bin4 = (reponse.alt[0] & 0x8)  >> 3;
int octet1_bin5 = (reponse.alt[0] & 0x16) >> 4;
int octet1_bin6 = (reponse.alt[0] & 0x32) >> 5;
int octet1_bin7 = (reponse.alt[0] & 0x64) >> 6;
int octet1_bin8 = (reponse.alt[0] & 0x128)>> 7;

int octet2_bin1 = (reponse.alt[1] & 0x1)  >> 0;
int octet2_bin2 = (reponse.alt[1] & 0x2)  >> 1;
int octet2_bin3 = (reponse.alt[1] & 0x4)  >> 2;
int octet2_bin4 = (reponse.alt[1] & 0x8)  >> 3;
int octet2_bin5 = (reponse.alt[1] & 0x16) >> 4;
int octet2_bin6 = (reponse.alt[1] & 0x32) >> 5;
int octet2_bin7 = (reponse.alt[1] & 0x64) >> 6;
int octet2_bin8 = (reponse.alt[1] & 0x128)>> 8;

int Altitude;
Altitude = octet1_bin8  * 32768;
Altitude += octet1_bin7 * 16384;
Altitude += octet1_bin6 * 8192;
Altitude += octet1_bin5 * 4096;
Altitude += octet1_bin4 * 2048;
Altitude += octet1_bin3 * 1024;
Altitude += octet1_bin2 * 512;
Altitude += octet1_bin1 * 256;

Altitude += octet2_bin8 * 128;
Altitude += octet2_bin7 * 64;
Altitude += octet2_bin6 * 32;
Altitude += octet2_bin5 * 16;
Altitude += octet2_bin4 * 8;
Altitude += octet2_bin3 * 4;
Altitude += octet2_bin2 * 2;
Altitude += octet2_bin1 * 1;
closesocket(ReceivingSocket);
return Altitude;

Cordialement,
Sébastien.
vendredi 22 août 2008 à 18:00:46 | Re : demande d'aide sur socket

aardman

Membre Club
tu as une maniere bien compliquée de faire int Altitude = reponse.alt[0] << 8 | reponse.alt[1];
dimanche 24 août 2008 à 11:54:50 | Re : demande d'aide sur socket

SebLinck

Salut,

Effectivement, ma manière n'est pas des plus simples, mais elle a le mérite d'être explicite.
Ta méthode  est "La" méthode, chapeau l'artiste ! j'avais oublier le décalage à gauche,
faut dire que je n'en avais pas vu depuis quelques années...

Cordialement,
Sébastien.
mardi 26 août 2008 à 13:33:22 | Re : demande d'aide sur socket

lucillemargau

merci  sebastien mais je n'arrive pas à comprendre ta méthode aardman veut tu  m'expliquer ta methode?? merci
samedi 13 septembre 2008 à 22:01:53 | Re : demande d'aide sur socket

Kian_ix

attention avec un recv d'une taille demandée la taille recue réellement peut etre plus petite
dimanche 14 septembre 2008 à 16:00:06 | Re : demande d'aide sur socket

SebLinck

Aarman fait un décalage a gauche de l'octet de poids fort et fait un ou logique avec l'octet de poids faible, il se retrouve avec l'entier codé sur deux octet.

Moi je décale tous les bit à droite pour faire un ET et savoir si il est à 0 ouo a 1...
ensuite je le multiplie par la valeur de chacun ( convertion base 2 base 10)

Cordialement,
Sébastien.


Cette discussion est classée dans : aide, demande, socket


Répondre à ce message

Sujets en rapport avec ce message

DEMANDE AIDE: aide sur socket, server proxy et spoof [ par retaks666 ] je voudrai savoir si en etudaint les sockets, je pourrai creer un serveur proxy ki renvoie une fausse ip, par exemple cela pourrai servir de spoofer s demande d'aide [ par naddou1985 ] Bonjour J'essaie de transférer des fichiers (de tout type : texte, exécutable,... et de toute taille : de qq centaines d'octets à 2 ou 3 Go) avec un e demande d'aide sur c [ par belle_wiwi ] bonjour,  j'ai besoin de votre aide si c'est possible, j'ai un programme en c à faire et qui doit valider certains critérs parmis lesquels:vérifier si demande d'aide(java3d) [ par Tunis_khalifa ] je veux determiner la methode (le code) pour determiner les coordonnes d un cube 3d qui est en mouvement(animation) lors de l'appui sur une touche Aid demande d'aide pouer crt2.o [ par magicienblanc ] salu tt le monde je sui un debutan en C,jai installer dev-c++ et kan jecri un program simple il maffiche cette erreur:C:\Dev-Cpp\ld cannot open crt2.o demande aide [ par ugmeg_44 ] je travaille sur un projet en c++ et je demande si vous pouver m'aidez sur ce sujet .merci d'avance Créer une application en C++, avec les librairies demande d'aide [ par atlas380 ] je devellope une application en C++,je souhaite savoir si quelqu'un pe me dire comment faire pour copier le contenu d'un repertoire a un autre merci demande d'aide [ par gwenn56 ] Bonjour, je ne suis pas du tout informaticien, j'utilise mon PC au domicile (principalement internet) et depuis qques jours j'ai le message suivant à demande d'aide [ par ahmedabdi ] bonne jour mes amies je vs demande l'aide à mon pb qui est comment programmer un objet matrice en java et comment presenter un graphe en utilisant cet


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales