Bonjour tout le monde,
je bosse actuellement sur la création d'un client IRC.
Pour l'instant il s'agit d'un simple mode console.
Et donc quand le programme se connect au serveur IRC, il n'y a aucun probléme
le programme reçoit les messages du serveur.
Cependant, quand j'essai de faire envoyer des commandes au serveur tel que nick ou user,
rien ne se passe:la commande sendto est considéré comme effectué.Voici, un bout de mon code
[cpp]
WSADATA WSAData;
SOCKET sock;
struct sockaddr_in sin;
int sendtxt(char *texte,int longueur)
{
char *buffer = new char[256];
cout<<sizeof(sin)<<endl;
cout<<"Emission du texte:\""<<texte<<"\"...";
if (sendto(sock,texte,longueur+1,1,(struct sockaddr *)&sin, sizeof(&sin))>0) cout<<"[ OK ]"<<endl;
else cout<<"[FAILED]"<<endl;
system("pause");
texte="";
return 0;
}
int main()
{
char *buffer = new char[256];
char *trtocomp = new char[256];
WSAStartup(MAKEWORD(2,0), &WSAData);
sock = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_addr.s_addr = inet_addr("213.92.8.4");
sin.sin_family = AF_INET;
sin.sin_port = htons(6667);
connect(sock, (SOCKADDR *)&sin, sizeof(sin));
while(1){
cout<<"Remplissement du tampon...";
if (recv(sock, buffer, 100, 0)>0)cout<<"[ OK ]"<<endl;
else cout<<"[FAILED]"<<endl;
if (sizeof(buffer)!=0) cout<<buffer<<endl;
//cout<<"Localhost>";
//cin>>sendtxt;
if (contain(buffer,256,"Checking",8)==1){sendtxt("help\\\n",16);sendtxt("NICK kurtaincall\n",16);sendtxt("USER kurt * * : kurt cool\n",25);sendtxt("join #france\n",12);}
}
closesocket(sock);
WSACleanup();
system("pause");
}
[/cpp]