Je t'ai pas dis que remplacer une fonction par une autre mais d'inverser les appels. Ton code devrait ressembler au code suivant (ni testé, ni compilé):
#include <windows.h>
#include <winsock2.h>
#include <iostream.h>
#include <assert.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
WSADATA WSAData;
assert(WSAStartup(MAKEWORD(2,0), &WSAData) == 0);
SOCKET sServeur=socket(AF_INET, SOCK_STREAM, 0);
SOCKADDR_IN addrServeur;
addrServeur.sin_addr.s_addr=INADDR_ANY;
addrServeur.sin_family=AF_INET;
addrServeur.sin_port=htons(21452);
bind(sServeur, (sockaddr*)&addrServeur, sizeof(addrServeur));
listen(sServeur, 5);
while(1)
{
SOCKADDR_IN addrClient;
int t_addrClient=sizeof(addrClient);
SOCKET sClient=accept(sServeur, (sockaddr*)&saddrClient, &t_addrClient);
char strBuf[128];
recv(sClient,strBuf,sizeof(strBuf),0);
// Ton test QUI MARCHE SEULEMENT SI TON SERVEUR ENVOIE LA CHAINE AVEC LE '\0' FINAL
// C'EST-A-DIRE TAILLE DE LA CHAINE DE CARACTERES + 1
if (strcmp(strBuf, "abcd")==0)
cout<<"Message reçu"<<endl;
closesocket(sClient);
}
return 0;
}
Kaid -
kaid.fr.st-------------------------------
Réponse au message :
-------------------------------
> bé je suis plus quoi faire j'en suis toujours au meme prob y'en a 1 qui me dit d'utiliser strstr() l'autre strcmp() fin bref ca serrais sympas si quelqun me donne le code qui recois les messages et qui verifie si la commande abcd est recu car le je sais plus koi faire merci ! (PS: Kaid j'ai justement remplacer accept par recvfrom() ca se compile mais la c encore pire ca m'avertie pas quand quelqun se connect et ca me fais ramer a mort
>
> la definition de recvfrom pour Kaid
>
> recvfrom()
> La fonction recvfrom est presque identique à sendto(). Vous avez besoin d'utiliser SOCK_DGRAM lors de la création du socket(), comme pour le sendto(). recvfrom(socket, message, longueur, 0, sin, sizeof(sin)); Le sin sera celui du client qui vous aura envoyé un paquet. Notez que vous devrez configurer le sin comme si vous feriez un serveur régulier. Voir plus haut pour plus d'informations.
>
> donc chez pas si c vraiment c fin bon je laiss tel quel
>
> #include <winsock2.h>
> #pragma comment(lib,"ws2_32.lib")
> #include <iostream.h>
>
> int main()
> {
> SOCKET sock;
> SOCKADDR_IN sin;
> WSADATA WSAData;
> WSAStartup(MAKEWORD(2,0), &WSAData);
>
> sock = socket(AF_INET, SOCK_STREAM, 0);
>
> sin.sin_addr.s_addr = INADDR_ANY;
> sin.sin_family = AF_INET;
> sin.sin_port = htons(21452);
>
> bind(sock, (LPSOCKADDR)&sin, sizeof(sin));
> listen(sock, 0);
> char *abcd = "abcd";
> char *buf = "0";
> char *buf2 = "1";
>
> while(1)
> {
> recv(sock,buf2,sizeof(buf2),0);
>
>
> SOCKADDR_IN s_from;
>
> if((recvfrom(sock,buf2,sizeof(buf2),0,(LPSOCKADDR)&s_from,(int *)sizeof(&s_from)) != INVALID_SOCKET))
> {
> cout<<"Client connecter sur le port 21452\n"<<endl;
> if (strcmp(buf,abcd)== 0) {
> cout<<"Commande abcd Recu !\n";
> }
> }
> }
> return 0;
> }
>
>