LuckyNut
Messages postés47Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention11 mars 2009
-
20 juin 2006 à 15:48
LuckyNut
Messages postés47Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention11 mars 2009
-
20 juin 2006 à 19:09
Bonjour,
J'ai développé un petit serveur smtp sous linux et j'ai un pb que je n'arrive pas à résoudre.
Il marche nickel si je le fais écouter sur le port 2525.
Par contre quand je le fais écouter sur le port 25, je remarque qu'un client windows s'y prend à 2 fois pour se connecter (avec un seul appel de connect pourtant).
Ca marche très bien avec un client linux.
socklen_t TailleSock = sizeof(SockDistant);
memset(&SockDistant,0,sizeof(struct sockaddr_in));
int s_distant = accept(sock,(struct sockaddr*)&SockDistant,&TailleSock);
if(s_distant!=-1) {
printf("CONNEXION ETABLIE\r\n");
strcpy(buffer,"Hello world !\r\n");
write(s_distant,buffer,strlen(buffer));
printf("Chaine "Hello world !" envoyée\r\n");
close(s_distant);
}
}
}
Je teste en me connectant avec telnet :
Si je le mets sur le port 2525 (par ex), tout marche bien.
Sur le port 25, tout marche bien aussi à partir de linux.
Par contre, à partir de windows, j'obtiens (coté serveur) :
CONNEXION ETABLIE
Chaine "Hello world !" envoyée
CONNEXION ETABLIE
Chaine "Hello world !" envoyée
Vous voyez, il me l'affiche en double.
Je ne sais pas si ca ne vient pas la configuration de linux (debian) ou bien du programme.
Je ne comprends pas pourquoi ca marche avec telnet sous linux...