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

Résolu
freekid Messages postés 55 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 8 mai 2011 - 19 juin 2006 à 11:02
freekid Messages postés 55 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 8 mai 2011 - 19 juin 2006 à 11:21
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
A voir également:

4 réponses

freekid Messages postés 55 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 8 mai 2011
19 juin 2006 à 11:21
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  
3
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
19 juin 2006 à 11:13
Je pense qu'il faudrait utiliser la fonction send au lieu de sendto (sendto et recvfrom sont pour le protocole UDP).
0
freekid Messages postés 55 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 8 mai 2011
19 juin 2006 à 11:15
Ben figure toi que j'ai essayé aussi, c'était le premier test que j'ai fait.
Bon, au cas ou, je vais reessayer     
0
freekid Messages postés 55 Date d'inscription dimanche 19 septembre 2004 Statut Membre Dernière intervention 8 mai 2011
19 juin 2006 à 11:18
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é  
0
Rejoignez-nous