Forum Clubic

[prog C++] aide urgent - projet

bonjour,

je me permet de vous demander de l’aide car la je suis dans une mouisse totale :paf:

voila mon tuteur ma dis que mon projet était totalement nul et il me demande en 1 semaine de faire un prog en C++ que je pense ne pas pouvoir boucler car je ne sais pas par ou commencer.

Voila mon projet est l’envoie de sms.

Je sais que je vais devoir definir certains paramètre pour utliser le TCP/IP creer un socket si je me trompe pas.

Maintenant je veux pas que je vous me fassiez le prog mais di vous pouviez m’eclairer et me dire les fonctions a utiliser je ferais le reste.

Merci d’avance :jap: pour votre aide je ne vous oublierais pas dans mon rapport :paf:

Tu peux éditer ton post en cliquant sur cette icone http://www.clubic.com/forum/style_images/persoclubic/editer.gif et mettre le langage dans le titre.
Concernant ton problème, en vrac : gethostbyname, socket, connect, send …

Des connexions TCP/IP avec nos serveurs grâce au protocole HTTP (GET ou POST) permettent l’envoi des SMS.

c’est la phrase du site auquel j’ai souscrit un abonnement.

je complète ce post par ceci

Le module SMS HTTP fonctionne par transmission de flux XML vers l’URL suivante (requêtes HTTP GET ou POST):

http://www.msinnovations.com/smsmod/amsmod…in&passcode=mot de passe&XMLFlow=flux XML à transmettre

Les login et mot de passe à transmettre correspondent aux identifiants de votre compte AllMySMS. Le flux XML à transmettre est détaillé ci-dessous.

Flux XML à transmettre:

<DATA>
<CLIENT>login AllMySMS en majuscules</CLIENT>
<MESSAGE>message - 640 caractères maximum</MESSAGE>
<CAMPAIGN_NAME>nom de campagne </CAMPAIGN_NAME> (option facultative)
<DATE>date différée facultative ex.: 2007-11-05 15:10:00 </DATE> (option facultative)
<MSGCLASS>0 pour un message flash, 1 un pour un message normal </MSGCLASS> (option facultative)
<MAIL_NOTIF>0 pour refuser les notifications d’envoi par mail, 1 pour les accepter </MAIL_NOTIF> (option facultative)
<MOBILEPHONE>Numéro de téléphone</MOBILEPHONE> (à répéter si besoin)
</DATA>

je dois envoyer un flux XML donc utiliser la Dll xml mais comme je voit pas ce qu’elle me permet :confused:

http://www.iprelax.fr/http/

c’est bateau, en PHP je te ferais ça en 2 temps 3 mouvements … mais en C++, va falloir me replonger dans mes bouquins de l’école :smiley:

enfin grosso modo, ton algo devrait ressembler à ça :
1/ saisie des paramêtres (numéro destinataire, message)
2/ création du flux XML (formatage des données saisies si nécessaire)
3/ ouverture du socket
4/ envois du flux
5/ fermeture du socket
6/ nettoyage mémoire

tu pars sur une appli graphique ou console ?

C/C++ ou PHP, même combat, c’est cul cul ce qui lui est demandé mais bon, on est pas la pour ça :wink:

ouep, c’est ma rappelle quand on nous demandait de faire des interfaces graphiques en assembleur plutôt qu’en C++ à l’école :o … tout ça pour comprendre comment fonctionnait l’adressage des cartes graphiques :sarcastic: …

mais bon, même si ça reste à caractère éducatif, au final ça sert quand même :oui:

Ca me fait penser à un truc, coder un moteur 3D en assembleur, ça doit être rigolo ! [:destroy]

en gros c’est ça mais plutôt en console :paf:

par contre voila ce que j’ai fais cette nuit

#include <winsock2.h> // pour les fonctions socket
#include <stdio.h>
#include <stdlib.h>

#pragma comment(lib,"ws2_32.lib")

typedef struct
{
char character[80];
int integer;
double real;
int flag;
}T_DATA;

void init_socket (void);
void creation_socket(void);
void config_socket(void);
void saisie_data(void);
void transmit_data();
void choix_topic(void);
void choix_client (void);
void send_real (void);
void send_integer (void);
void copy_ip_ad (void);
void send_many_client (int b);
[color=green]// ********************************************************
// Définition des variables
// ********************************************************[/color]

WSADATA wsadata; // Variable permettant de récupérer la structure d’information sur l’initialisation

SOCKET id_socket; // Identifiant du socket
SOCKADDR_IN info_socket; // Déclaration de la structure des informations lié à l’écoute
unsigned char buf[4];
unsigned char ad_ip[10][4];
T_DATA data;
LPHOSTENT hostEntry;

void main ()
{
init_socket ();
creation_socket();
config_socket();
transmit_data(); //a utiliser plus tard
}

[color=green] // ********************************************************
// Initialisation de Winsock
// ********************************************************[/color]

void init_socket (void)
{

erreur=WSAStartup(MAKEWORD(2,2),&amp;wsadata);

if (erreur==0) printf(&quot;&#092;n- Socket initialised&#092;n&quot;);

else printf(&quot;&#092;n- initialisation problem of the socket&#092;n&quot;);

}

[color=green]
// ********************************************************
// Ouverture d’une Socket
// ********************************************************[/color]

void creation_socket(void)
{

  id_socket=socket(AF_INET,SOCK_DGRAM,17);

if (id_socket!=INVALID_SOCKET) printf ("\n- Socket created\n");

else printf ("\n- Problem during the creation of the socket\n");

}

[color=green]
// ********************************************************
// Lie le socket à une ip et un port d’écoute
// ********************************************************[/color]

void config_socket(void)
{
info_socket.sin_family=AF_INET;
info_socket.sin_addr.s_addr=htonl(INADDR_ANY);
info_socket.sin_port=htons(33333); // Ecoute sur le port 33333

  erreur=bind(id_socket,(struct sockaddr*)&amp;info_socket,sizeof(info_socket));
  
  
  if (erreur&#33;=0) 
	      printf(&quot;&#092;nSorry, i can't read this port : %d %d&quot;,erreur,WSAGetLastError());
  
  else    printf(&quot;&#092;n- Bind carry out&#092;n&quot;);
}

:paf: faut juste savoir que j’ai jamais utliser ça et que j’ai plus que jusqu’a la fin de semaine :confused:

il s’est bien foutu de moi :frowning:

bref merci de votre aide :oui:

bah c’est clair … il aurait pus te le dire quand t’as choisis ton projet :neutre: … limite j’en parlerais à son supérieur histoire de ruer un peu dans le coral :o

sinon là je peux pas trop t’aider :neutre: … ptet demain si je trouve un peu de temps sur ma pause midi :oui:

quand tu peux de toute façon du moment que je êux presenter un truc qui soit "correct" pour la soutenance :slight_smile:

autrement t’en fais pas j’en ai parlé à mon tuteur ecole et il m’a dis que ça jouerai en ma faveur :wink:

un tit up :whistle:

pour les socket j’ai trouvé ça :
http://c.developpez.com/WalrusSock/

et pour le XML ça :
http://khayyam.developpez.com/articles/cpp/tinyxml/

un mix des deux devrait te donner ton programme :smiley:

euh sinon j’arrive pas à compiler ton source sur Dev-CPP … après correction des erreurs :smiley: ça me sort des erreurs de linkage :neutre:

les erreurs de source actuel portait sur la non-définition de la variable erreur dans les fonctions, donc vu que c’est une variable numérique entière, rajoute un int devant et c’est bon :wink:


int erreur = WSAStartup(MAKEWORD(2,2),&wsadata);
int erreur = bind(id_socket,(struct sockaddr*)&info_socket,sizeof(info_socket));

:jap: merci je mis met demain la j’ai sommeil j’ai fais du nom stop durant 48h :sleep:
demain je mis atable sérieusement :jap:

d’un autre côté, c’est un peu le dernier jour de la semaine [:helvix] [:beckett3]