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:
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
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
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
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:
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),&wsadata);
if (erreur==0) printf("\n- Socket initialised\n");
else printf("\n- initialisation problem of the socket\n");
}
[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*)&info_socket,sizeof(info_socket));
if (erreur!=0)
printf("\nSorry, i can't read this port : %d %d",erreur,WSAGetLastError());
else printf("\n- Bind carry out\n");
}
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:
euh sinon j’arrive pas à compiler ton source sur Dev-CPP … après correction des erreurs ç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
int erreur = WSAStartup(MAKEWORD(2,2),&wsadata);
int erreur = bind(id_socket,(struct sockaddr*)&info_socket,sizeof(info_socket));