Création d'un client IRC,reception ok, emission: pas bon

[Résolu]
Signaler
Messages postés
55
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
8 mai 2011
-
Messages postés
55
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
8 mai 2011
-
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<";
//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

4 réponses

Messages postés
55
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
8 mai 2011

A ben figurez vous, que je viens de reessayé.Il faut donc bien utiliser send(.C'était mon programme qui avait un probleme(je sais pas encore vraimen lequel.Mais c'est surement qu'il n'attend pas la réponse au bon endroit.Merci de ton aide  
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
10
Je pense qu'il faudrait utiliser la fonction send au lieu de sendto (sendto et recvfrom sont pour le protocole UDP).
Messages postés
55
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
8 mai 2011

Ben figure toi que j'ai essayé aussi, c'était le premier test que j'ai fait.
Bon, au cas ou, je vais reessayer     
Messages postés
55
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
8 mai 2011

toujours le meme resultat.Quand j'envoi une sequence il me dit no ident response.comme quand on envoi rien.
Donc en gros, rien ne semble etre envoyé