Slt la compagnie !!!
J'ai un super pb en c, au niveau des sockets. En fait sur le serveur, le programme ne continue pa apres le listen (pas d'entréé ds la boucle pour accepter les connections) mon code :
void main()
{
WSADATA WSAData;
(WSAStartup(MAKEWORD(2,0), &WSAData)
SOCKET sock;
SOCKET csock;
SOCKADDR_IN sin;
SOCKADDR_IN csin;
char *buffer = new char[255];
int i;
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
sin.sin_family = AF_INET;
sin.sin_port = htons(2500);
if ((bind(sock, (SOCKADDR *)&sin, sizeof(sin))) == 0)
{ cout << "Bind" << endl ;}
if ((listen(sock, 3)) == 0)
{ cout << "Listen" << endl ;}
cout <<"Ecoute" <<endl;
Jusque là, tout marche bien et ensuite, plus rien.
J'ai ajouté le "cout " précédent pour verifier k'il n'y avait pa d'arret mais rien, la ligne produit l'affichage, et ce qui suit ne s'execute pa :
for(;;)
{
cout << "Entree de boucle";
int sinsize = sizeof(csin);
if((csock = accept(sock, (SOCKADDR *)&csin, &sinsize)) != INVALID_SOCKET)
{
recv(csock, buffer, sizeof(buffer), 0);
cout << "Salut " << *buffer;
}
else
{ cout << "Refus" << endl ;
exit(0);}
}
}
SVP, kelk'un pour m'aider et viiiiittttttte !!!!!!!!!!