[PERL/C/SOCKETS] Problème de sockets en PERL

Problème de sockets en PERL [PERL/C/SOCKETS] - Programmation

Marsh Posté le 24-07-2002 à 15:19:30    

J'ai un problème avec les sockets en PERL. Voila le bout de code du serveur en PERL :
 

Code :
  1. my $sth = $dbh->prepare(qq{select * from projet});
  2. $sth->execute();
  3. $numrows=$sth->rows;
  4. print "Sending ".$numrows." projects\n";
  5. print $client $numrows;
  6. for($i=0;$i<$numrows;$i++)
  7. {
  8. ($id,$name)=$sth->fetchrow_array();
  9. $mess=$id."=".$name;
  10. print "Sending ".$mess."\n";
  11. print $client $mess;
  12. }
  13. $sth->finish();
  14. $dbh->disconnect();


 
Je souhaiterais que le programme envoie un paquet par projet.

Code :
  1. $mess=$id."=".$name;
  2. print $client $mess;


 
Voila mon client en C

Code :
  1. nRet = recv(Socket, retour, sizeof(retour), 0);
  2. if (nRet == SOCKET_ERROR)
  3. {
  4.  wsprintf(retour,"Probleme réseau: recv\n%d",WSAGetLastError());
  5.  MessageBox(0,retour,"Erreur",MB_OK);
  6.  return FALSE;
  7. }
  8. memcpy(ret,retour,nRet);
  9. ret[nRet]='\0';
  10. sscanf(ret,"%d",&result);
  11. wsprintf(retour,"%s,%d",ret,nRet);
  12. MessageBox(0,retour,"OK",MB_OK);
  13. while(result)
  14. {
  15.  nRet = recv(Socket, retour, sizeof(retour), 0);
  16.  if (nRet == SOCKET_ERROR)
  17.  {
  18.   wsprintf(retour,"Probleme réseau: recv\n%d",WSAGetLastError());
  19.   MessageBox(0,retour,"Erreur",MB_OK);
  20.   return FALSE;
  21.  }
  22.  memcpy(ret,retour,nRet);
  23.  ret[nRet]='\0';
  24.  sscanf(ret,"%d=%s",&nRet,retour);
  25.  nRet+=10000;
  26.  wsprintf(retour,"%s,%d",ret,nRet);
  27.  MessageBox(0,retour,"OK",MB_OK);
  28.  result--;
  29. }


 
Voila le résultat que j'obtiens :
http://www.chezfree.com/fmbm/images/pb.jpg
 
Alors que je voudrais qu'il m'affiche d'abord une boite de dialogue avec "3" puis une avec "0=projet0" puis "1=projet1", etc...
Est-ce que cela vient de mon implémentation ? des sockets C ? des sockets PERL ?
Dois-je faire un système de confirmation de réception entre chaque paquets ?
 
Merci d'avance pour votre aide
A+

Reply

Marsh Posté le 24-07-2002 à 15:19:30   

Reply

Marsh Posté le 19-08-2002 à 16:53:44    


As-tu trouvé la solution ?
Moi j'ai le problème inverse.
Mon serveur est en C et mon client est en perl.
Je n'arrive pas à faire communiquer mes 2 appli.
 
@+


Message édité par albator1999 le 19-08-2002 à 17:01:58
Reply

Marsh Posté le 20-08-2002 à 15:24:13    

pb résolu :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed