begin process at 2012 05 30 17:29:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

sockets non-bloquants en receptions


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

sockets non-bloquants en receptions

jeudi 29 décembre 2005 à 11:56:25 | sockets non-bloquants en receptions

shadow1779

Membre Club
Bonjour,

j'commence a me debrouiller avec les sockets non bloquants mais j'ai juste un probleme, j'essai de me faire un mailer anonyme donc je met dans mon case ID_ENVOYER (qui correspond a mon bouton envoyer un mail)

case ID_ENVOYER:
//on envoi la commande d'arrivée
sprintf(buffer,"helo smtp\r\n");
send(sock,buffer,sizeof(buffer),0);

pointeur = GetWindowTextLength(GetDlgItem(hwnd,ID_COMMENT)) + 1;
SendMessage(GetDlgItem(hwnd,ID_COMMENT),EM_SETSEL,pointeur,pointeur);
SendMessage(GetDlgItem(hwnd,ID_COMMENT),EM_REPLACESEL,TRUE,(LPARAM)buffer);

.... et ca continu pour MAIL FROM, RCPT TO ....

et j'ai mon case FD_READ, cependant quand le helo smtp s'affiche dans l'editbox on dirai que cela ne retourne rien, bref ma question est: est ce que le code dans le case FD_READ marche meme au fur et a mesure que cela fait les actions du case ID_ENVOYER,
jeudi 29 décembre 2005 à 13:38:35 | Re : sockets non-bloquants en receptions

vecchio56

Administrateur CodeS-SourceS
sprintf(buffer,"helo smtp\r\n");
C'est quoi cette horreur, pourquoi pas strcpy??

A part ca j'a pas tout compris a ton problème
jeudi 29 décembre 2005 à 13:40:55 | Re : sockets non-bloquants en receptions

vecchio56

Administrateur CodeS-SourceS
Au fait send(sock,buffer,sizeof(buffer),0);

Buffer est-il un tableau ou un pointeur? Tu pense pas que tu devrais plutot mettre strlen(buffer) plutot que sizeof buffer?
jeudi 29 décembre 2005 à 14:43:30 | Re : sockets non-bloquants en receptions

DeAtHCrAsH

En effet si buffer est un pointeur, sizeof va te renvoyer 4 qui correspond a la "taille" alloué pour un pointeur.
Au lieu de faire 15 fois GetDlgItem, déclare des variables globales pour les handles de tes controles et initialises les dans le WM_INITDILAOG.

Sinon soit plus précis sur ton pb car pour ma part j'ai pas bien saisi ou est le probleme ?

Le FD_READ est un événement généré a la reception de données sur une socket.
Il en va donc que si ta DlgProc bloque sur ton ID_ENVOYER, ton FD_READ serra en attente.

Shell
jeudi 29 décembre 2005 à 14:49:04 | Re : sockets non-bloquants en receptions

shadow1779

Membre Club
bein le probleme c'est que lorsque je clic sur mon ID_ENVOYER il envoi les requetes a la suite, mais moi j'aimerai aussi qu'il puisse lire les messages renvoyés par le server smtp pour dire si la requetes est passé OK ou ERROR
jeudi 29 décembre 2005 à 14:53:32 | Re : sockets non-bloquants en receptions

vecchio56

Administrateur CodeS-SourceS
Ben tu le fais avec recv non?
jeudi 29 décembre 2005 à 17:14:42 | Re : sockets non-bloquants en receptions

shadow1779

Membre Club
ouai mais j'vai pas faire un recv() apres chaque send quand meme, ce que j'aurai voulu c'est ne gerer que les send et qu'il passe automatiquement par le FD_READ pour lire constamment ce qu'il se passe a n'importe quel moment

.
jeudi 29 décembre 2005 à 17:18:48 | Re : sockets non-bloquants en receptions

vecchio56

Administrateur CodeS-SourceS
Je pense que si, tu dois faire un recv après chaque send, ca me semble logique, c'est le principe du dialogue. Enfin je connais pas trop (pas du tout) les sockets, mais je suis quasiment sur que tu dois faire comme ca.
De plus, une lecture non bloquante je trouve ca bizarre...
Attendons que aardman passe dans le coin, il te conseillera mieux que moi
jeudi 29 décembre 2005 à 17:30:17 | Re : sockets non-bloquants en receptions

aardman

Membre Club
Salut,
C'est plutot dans le FD_READ qu'il faut mettre le recv(), c'est le message de notification qui est envoyé lorsque le buffer de reception du socket contient des données.
Si tu recois 100 octets, et que dans le FD_READ tu en lis que 50, alors tu recevra un nouveau FD_READ puisque le buffer du socket n'est toujours pas vide.



Cette discussion est classée dans : buffer, case, envoyer, id, sockets


Répondre à ce message

Sujets en rapport avec ce message

C/API Win32 - Problème avec System Try.... [ par JimyRyan ] Bonjour.J'ai un programme d'on j'ai créé une interface graphique en C/API Win32.Mon derrnier problème avant de cloturer le developpement de mon prog e sockets: envoi d'une structure... [ par julien20vt ] Maintenant que j'ai réussi à envoyer des char, des int[], je voudrais envoyer un structure faite maison.Le pb est que le socket n'accepte que les char Buffer avec WriteFile ??????????? [ par nanalye ] Bonjour tout le monde !J'ai regardé sur le forum ce qui était mis sur ce sujet mais je n'ai pas tout compris.Je dois envoyer des entiers par le biais [Sockets] Comment envoyer un mail ? [ par DamianC ] Salut !Cela fait déjà plusieurs jours que j'essaie de créer un programme (en console) pour envoyer des mails mais je n'y arrive pas.C'est pour ça que envoyer un fichier par sockets [ par anonyme_man_in_this_world ] salut !! comment envoyer un fichier FILE*fichier par sockets ? ça sera simpa si on me donne un petit exemple merçi d'avance , A++ Problème de sockets... [ par nightlord666 ] Bonjour ! J'essaie en ce moment de programmer un serveur multithread qui servira(peut-être) à un projet de MMORPG. Le serveur fonctionne normalement, client irc [ par tagboys ] bon j'ai trouver une source sur ce site ces un socket bot j'aimerait y rajouter quelque commands .la seul chose qu'il a ces le pong reply .j'aimerait Comment envoyer des fichiers par les sockets? [ par myckie ] Bonjour, je voudrai savoir s'il existe une fonction de visual 6 qui permet d'envoyer des fichier binaire ou des images a travers une socket (la socket Fonction / Tableau [ par zlatan40 ] Bonjour a tous J'ai des problème avec mes fonctions qui retourne ou prenne en paramètre un tableau. Dans le code je récupère le tableau Buffer et ensu Problème d'affichage d'image svp besoin d'aide [ par nico2910 ] Salut à tous,j'ai un petit problème avec mon programme en C(que je compile sous Visual C++Express 2008 sans erreur),je n'arrive pas à [b]charger et sa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,936 sec (3)

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