Avec ce bout de code pour un client de chat, j'ai le problème suivant :
Le serveur reçoit uniquement le premier message du client.
Les autres sont envoyés sans erreur, mais rien n'est reçu.
En déconnectant et reconnectant à chaque fois le client, ça marche.
Help !
SOCKET c;
SOCKADDR_IN to;
char data[255];
char tosend[255];
WSADATA wsaData;
WORD v;
v = MAKEWORD(2,0);
WSAStartup(v, &wsaData); //Initialisation des sockets
c = socket(AF_INET,SOCK_STREAM,0);
if(c == INVALID_SOCKET)
{
printf("Unable to create socket.\n" );
getch();
fflush(stdin);
exit(1);
}
to.sin_family = AF_INET;
to.sin_addr.s_addr = inet_addr(adip); //IP du serveur
to.sin_port = htons(prt); //Port à utiliser
if (connect(c,(LPSOCKADDR)&to,sizeof(to)) == SOCKET_ERROR)
{
printf("Unable to connect server.\n" );
getch();
fflush(stdin);
exit(1);
}
gets(data); // Saisie du message
strcpy(tosend,data);
if (send(c,tosend,sizeof(tosend),0) == SOCKET_ERROR)
printf("->Failed\n" );
else
printf("->Ok\n" ); //Ca affiche ce message tout le temps, mais rien n'est reçu
//coté serveur.
shutdown(c,SD_BOTH);
closesocket(c);
WSACleanup();