Bonjour à tous !
Voici mon problème, je développe un programme qui à pour but de gérer la communication entre un serveur est plusieurs clients, mais le problème est que mon serveur n'accepte pas plusieurs connexion de clients, je ne sais pas si le problème viens de mon serveur ou de mon client qui bloque le serveur.
Pour la connexion de mon serveur j'utilise la méthode OnAccept(), qui est dans la classe SocketService qui dérive de CAsyncSocket :
void CSocketServeur::OnAccept(int CodeErreur)
{
// le serveur accepte les connexions
CSocketService *m_SocService = new CSocketService;
if(Accept(*m_SocService))
{
AfxMessageBox("Client connecté ");
}
else
{
delete m_SocService;
}
CAsyncSocket::OnAccept(CodeErreur);
}
ensuite dans une autre classe qui dérive de CAsyncSocket : CSocketServeur, j'ai le OnReceive() suivant :
void CSocketService::OnReceive(int CodeErreur)
{
TCHAR buffer[50];
CString m_strReception;
int nbRead = Receive(buffer, 50);
buffer[nbRead] = 0;
CString taille(buffer);
m_strReception += taille; //additionne les 2 valeurs et la place dans la variable de gauche
if(m_strReception == "quit")
{
ShutDown();
AfxMessageBox("Client déconecté");
}
else
{
AfxMessageBox(m_strReception);
}
CAsyncSocket::OnReceive(CodeErreur);
}
Voila pour mon serveur.
Ensuite je voudrai avoir des informations si possible sur le clients car je n'utilise pas du tout les fonctions OnClose() et tout ... Je voudrai aussi savoir comment les implémenter si il y en a besoin.
Pour mon client j'utilise juste les fonctions suivante :
ipconfig est un objet de CSocketService qui dérive de CAsyncSocket et qui est utilisé dans Monprojet.Dlg .
Pour crée la connexion :
socket = ipconfig.Create(SOCK_STREAM) ;
socket = ipconfig.Connect(m_ip, m_port);
Pour l'envoie de donnée :
ipconfig.Send(m_texte,strlen(m_texte));
Pour la fermeture :
ipconfig.Close();
Aidez moi svp !!!!