Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3046 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [RESOLU] connection socket

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[RESOLU] connection socket

n°1528788
aneurysm
Posté le 15-03-2007 à 10:36:22  profilanswer
 

HELLO  :hello:  
 
  Voila je suis étudiant en 2eme année bts info et je souhaite réaliser une connection par socket sur un poste distant par module beck et ainsi récupérer les informations contenue dans une base de donnée mysql.  
  J'ai réussi à réaliser la connection au socket avec une écoute, et je suis arrivé à créer un envoi de donnée, le problème est que le beck ne prend pas en charge Mysql et lorsque j'envoi directement les requêtes, ex :
Select * from monmagasin
  Cela ne donne rien...
  Un collègue qui lui effectue la même tache avec un module tini (programmation java et prise en charge Mysql) envoie la même requête de la même facon, et celle ci est prise en charge et lui retourne les valeurs contenues dans la base de donnée.
  Si quelqu'un avait une idée de pourquoi la requète envoyée n'est pas executée...
 
  Voici la fonction d'envoie :
//send
      retval = send( sd,  (char *) sendbuf, TM_TCPECHOBUF_CLIENT_SENDSIZE, 0, &error );
 
      if(retval == API_ERROR)
      {
         #ifdef TCP_ECHO_CLIENT_DEBUG
          printf("\r\nErreur d'envoi %d",error);
         #endif
 
         goto TCP_CLIENT_DONE;          //balise qui apparait plus tard dans le programme  
      }
 
      #ifdef PRINT_DATA                    //affiche ce que j'envoi, la j'ai tout retiré pour plus de lisibilité
   printf("\r\nTCPClient:\r\nSending :\r\n" );
   for(i=0;i<TM_TCPECHOBUF_CLIENT_SENDSIZE;i++)
   {
    printf("",(char)sendbuf[i]);
   }
    #endif
 
sendbuf est un tableau de 40 charactères ou j'envoie la requete:
 
#define TM_TCPECHOBUF_CLIENT_SENDSIZE    40
char sendbuf[TM_TCPECHOBUF_CLIENT_SENDSIZE ]="select * from mon_magasin";    
//que je mette ou non ; à la fin ca ne change rien ->erreur
 
  une fois le programme executé, le serveur recoit la requète, ne l'execute pas, et affiche un signal d'erreur :
Erreur SQL : You have an error in your sql syntax.
  Pourtant le serveur affiche bien : select * from mon_magasin;
Si quelqu'un a des idées...
merci d'avance a+

Message cité 1 fois
Message édité par aneurysm le 29-03-2007 à 17:13:42
mood
Publicité
Posté le 15-03-2007 à 10:36:22  profilanswer
 

n°1528800
_darkalt3_
Proctopathe
Posté le 15-03-2007 à 11:07:30  profilanswer
 

En écrivant un protocole ?


---------------
Töp of the plöp
n°1528803
Taz
bisounours-codeur
Posté le 15-03-2007 à 11:14:02  profilanswer
 

man 2 read

n°1528808
aneurysm
Posté le 15-03-2007 à 11:18:42  profilanswer
 

Et si j'envoyai directement les requetes mysql?

n°1528818
_darkalt3_
Proctopathe
Posté le 15-03-2007 à 11:28:36  profilanswer
 

Bah il faudrait que ce soit à un serveur mysql ...
 
T'as lu ton cours de réseau ?


---------------
Töp of the plöp
n°1528820
aneurysm
Posté le 15-03-2007 à 11:32:10  profilanswer
 

... si je demande si je peux envoyer directement les requetes mysql...  
c'est que oui c'est un serveur mysql...
 
EDIT: merci de me prendre pour un con au fait lol


Message édité par aneurysm le 15-03-2007 à 11:32:45
n°1528824
_darkalt3_
Proctopathe
Posté le 15-03-2007 à 11:39:17  profilanswer
 

'k lol
 
Faudrait savoir exposer un problème, ma boule de crystal a bien du mal, je te prie de l'excuser.


---------------
Töp of the plöp
n°1528825
Taz
bisounours-codeur
Posté le 15-03-2007 à 11:39:56  profilanswer
 

bah si t'es si intelligent, range tes sockets et utilise la bibliothèque C de MySQL

n°1528837
Sve@r
Posté le 15-03-2007 à 11:59:05  profilanswer
 

Taz a écrit :

bah si t'es si intelligent, range tes sockets et utilise la bibliothèque C de MySQL


[:rofl]


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1528989
aneurysm
Posté le 15-03-2007 à 17:02:08  profilanswer
 

lol si tu savai lire tu aurai vu que je dois l'utiliser avec un beck qui ne supporte pas mysql, il faudra que je le simule ensuite avec sqlwrapper...  
tu as saisi?

Message cité 1 fois
Message édité par aneurysm le 15-03-2007 à 17:12:52
mood
Publicité
Posté le 15-03-2007 à 17:02:08  profilanswer
 

n°1529006
Taz
bisounours-codeur
Posté le 15-03-2007 à 17:23:42  profilanswer
 

j'y peux quoi si t'es atteint de NIH [:spamafote]


Message édité par Taz le 15-03-2007 à 17:23:51
n°1529012
aneurysm
Posté le 15-03-2007 à 17:30:17  profilanswer
 

j'y peux rien si tu as des problemes de lecture...

n°1529014
_darkalt3_
Proctopathe
Posté le 15-03-2007 à 17:34:18  profilanswer
 

aneurysm a écrit :

lol si tu savai lire tu aurai vu que je dois l'utiliser avec un beck qui ne supporte pas mysql, il faudra que je le simule ensuite avec sqlwrapper...  
tu as saisi?


[:ciler]
T'as dit tout ça avant c'est vrai ??


---------------
Töp of the plöp
n°1529482
aneurysm
Posté le 16-03-2007 à 13:53:13  profilanswer
 

j'ai di que j'allai devoir utiliser un beck, alors effectivement si vous ne saviez pas ce que c'était ( et plus spécialement taz..), il aurait fallu me le demander...
effectivement j'aurai pu le dire dès le debut mais j'avai pensé que vous saviez ce que c'était.
bref j'ai pas envie de polémiquer 4 plombes dessus... je modifie le post original si quelqu'un a des idées...

n°1529681
Emmanuel D​elahaye
C is a sharp tool
Posté le 16-03-2007 à 18:56:45  profilanswer
 

aneurysm a écrit :

 Voici la fonction d'envoie :
//send
      retval = send( sd,  (char *) sendbuf, TM_TCPECHOBUF_CLIENT_SENDSIZE, 0, &error );
 


 [:arrakys]  

int send(int s, const void *msg, size_t len, int flags);  


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1529696
Sve@r
Posté le 16-03-2007 à 19:36:19  profilanswer
 

Emmanuel Delahaye a écrit :

int send(int s, const void *msg, size_t len, int flags);



T'as été le seul à remarquer qu'il y avait un paramètre en trop dans la fonction alors que c'est écrit depuis le début.  :bounce:
Trop trop fort... :sol:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1529717
_darkalt3_
Proctopathe
Posté le 16-03-2007 à 20:54:36  profilanswer
 

Sve@r a écrit :

T'as été le seul à remarquer qu'il y avait un paramètre en trop dans la fonction alors que c'est écrit depuis le début.  :bounce:
Trop trop fort... :sol:

 
aneurysm a écrit :

Message édité par aneurysm le 16-03-2007 à 14:07:44

 

[:god]


Message édité par _darkalt3_ le 16-03-2007 à 20:54:48

---------------
Töp of the plöp
n°1530306
aneurysm
Posté le 19-03-2007 à 08:16:29  profilanswer
 

nan il n'y a pas de paramètres en trop ni en moins, si j'en retire il me donne une erreur de compilation, "too few parameter".

Message cité 1 fois
Message édité par aneurysm le 19-03-2007 à 08:20:21
n°1530309
Emmanuel D​elahaye
C is a sharp tool
Posté le 19-03-2007 à 08:21:51  profilanswer
 

aneurysm a écrit :

nan il n'y a pas de paramètres en trop ni en moins, si j'en retire il me donne une erreur de compilation, "too few parameter".


Alors tu as une version des sockets non POSIX.1. Si c'est le cas, je ne sais pas répondre.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1530313
aneurysm
Posté le 19-03-2007 à 08:57:53  profilanswer
 

j'ai une version de DOS allégé sur le beck, c'est peut être pour ca...
tu crois qu'il peut y avoir des problèmes de compréhension étant donné que le serveur est géré (et paramétré) par ubuntu?

n°1530317
Taz
bisounours-codeur
Posté le 19-03-2007 à 08:59:53  profilanswer
 

mais t'as fini de raconter n'importe quoi ?

n°1530333
aneurysm
Posté le 19-03-2007 à 09:34:54  profilanswer
 

olalalala j'ai pas envie de m'énerver dès le matin......!!!
cela fait maintenant une semaine que je suis la dessus sans beaucoup avancer... si je vien ici c'est parce que j'ai besoin d'aide, je me tire les cheveux a tester tout et n'importe quoi pour essayer de comprendre.
  Après une semaine à tout tester j'essai d'élargir un peu l'eventail d'erreur possible et c'est pourquoi je poste ce genre de message.
  Si tu n'arrive pas a comprendre cela, dégage et emporte tes messages  avec toi....
  t'es vraiment un gros lourd, si t'as pas envie de m'aider mais t'a juste à ne pas poster, tu perd ton temps et le mien...
 
 Ensuite il y a obligatoirement des problèmes de compréhension étant donné que le serveur recoit la requête (la même que celle envoyé du tini ->base unix) mais ne l'execute pas .
  D'ailleurs il faut que je me deconnecte après l'envoi du message pour qu'il le prenne en compte sur le serveur, si j'en envoie plusieurs à la suite ou si je reste connecté... il ne prend rien...
  Si quelqu'un aurait une idée sur l'origine du problème, je lui serait reconnaissant de m'en faire part...

Message cité 1 fois
Message édité par aneurysm le 19-03-2007 à 09:36:48
n°1530348
_darkalt3_
Proctopathe
Posté le 19-03-2007 à 09:53:25  profilanswer
 

aneurysm a écrit :

t'es vraiment un gros lourd, si t'as pas envie de m'aider mais t'a juste à ne pas poster, tu perd ton temps et le mien...


Tu racontes les choses à moitié ou mal, personne peut t'aider dans ces conditions.  
De plus ton ton n'incite pas du tout à l'entraide.


---------------
Töp of the plöp
n°1530370
xilebo
noone
Posté le 19-03-2007 à 10:37:02  profilanswer
 

Si le serveur mysql te renvoie une erreur , c'est qu'il ne comprend pas ce qu'il recoit. Ta requête SQL à l'air correcte (en admettant que ta table existe), peut-être cela vient de la convention de codage de caractère qu'accepte ton serveur SQL.

n°1530420
Taz
bisounours-codeur
Posté le 19-03-2007 à 11:11:05  profilanswer
 

Il y a un protocole à respecter pour communiquer avec MySQL, il suffit pas de faire un send("select * from tab;" )

n°1531376
aneurysm
Posté le 21-03-2007 à 08:22:17  profilanswer
 

 Et di moi comment veut tu que je réponde autrement après un message pareil.
Je poste un message  ou j'avance une idée parce que je suis en pleine galère et on se permet de me répondre comme ca... je suis désolé mais je ne suis pas un clébard et si on ne me respecte pas (dans mon ignorance) alors je ne respecte pas non plus... Et il n'y a rien de plus normal, il m'aurait répondu comme j'ai posé les questions, jamais je n'aurai manqué de respect.
 
  "Tu racontes les choses à moitié ou mal, personne peut t'aider dans ces conditions."
  Effectivement c'est possible, malgré tout j'ai redétaillé autant que possible le post original, et si je racontes les choses a moitié ou mal c'est peut être parce que je ne peut pas en faire autrement.  
   
 Ensuite oui la table existe, je vais essayer d'y voir plus clair au niveau de la convention de codage de caractère.
 
 Et oui j'imagine qu'il y a un protocole a réspecter pour communiquer mais j'ai dit plus haut que le beck ne supportait pas Mysql alors il va sans doute (peut être) falloir que je me débrouille avec un simple send.  
merci

n°1531382
Taz
bisounours-codeur
Posté le 21-03-2007 à 08:38:45  profilanswer
 

aneurysm a écrit :

Et oui j'imagine qu'il y a un protocole a réspecter pour communiquer mais j'ai dit plus haut que le beck ne supportait pas Mysql alors il va sans doute (peut être) falloir que je me débrouille avec un simple send.
merci

bah on te dit que NON. Tu dois RTFM et réimplémenter le protocole réseau mysql.
Et je n'ai de toutes façons aucune idée de ce qu'est ce beck.

Message cité 1 fois
Message édité par Taz le 21-03-2007 à 08:40:08
n°1531384
Emmanuel D​elahaye
C is a sharp tool
Posté le 21-03-2007 à 08:46:34  profilanswer
 

Taz a écrit :

bah on te dit que NON. Tu dois RTFM et réimplémenter le protocole réseau mysql.
Et je n'ai de toutes façons aucune idée de ce qu'est ce beck.


Un module embarqué.
 
http://www.gridconnect.com/beck-kits.html
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1531386
Taz
bisounours-codeur
Posté le 21-03-2007 à 08:47:56  profilanswer
 


bah je ne vois donc pas ce qui interdit d'y rajouter le support mysql.

n°1531415
aneurysm
Posté le 21-03-2007 à 09:31:59  profilanswer
 

LOL et qu'est ce que je t'ai répondu??
Je t'ai repondu que NON on ne peut pas..................
Le module BECK ne peut pas prendre en charge Mysql

n°1531435
Taz
bisounours-codeur
Posté le 21-03-2007 à 09:53:51  profilanswer
 

aneurysm a écrit :

LOL et qu'est ce que je t'ai répondu??
Je t'ai repondu que NON on ne peut pas..................
Le module BECK ne peut pas prendre en charge Mysql


pourquoi ? tu crois que y a quoi dans libmysql si ce n'est des send et des recv ?

n°1531436
franceso
Posté le 21-03-2007 à 09:55:42  profilanswer
 

J'y comprends rien à ton truc :??:
 
1- Le serveur mySQL, il tourne sur quelle machine : le module beck ou le pc distant ?
2- Même question pour le client que tu essaies d'implémenter.
3- Qu'est-ce qui t'empêche d'utiliser l'API C de mySQL (et j'aimerais bien avoir une vraie réponse, pas un "c'est pas possible" ) ?


---------------
TriScale innov
n°1531465
aneurysm
Posté le 21-03-2007 à 10:31:04  profilanswer
 

okay  
1- Le serveur mysql tourne sur un pc distant avec sqlwrapper
2- Le client tourne sur l'OS du beck, une version allégée de DOS
3- tres honnetement je n'en sait rien, c'est mon prof qui m'a dit ca..

n°1531549
franceso
Posté le 21-03-2007 à 11:43:15  profilanswer
 

tu devrais essayer d'utiliser l'API C quand même : comme dit Taz, c'est jamais qu'une bibliothèque qui encapsule proprement les send / recv pour toi, et implémente le protocole de communication avec MySQL.
 
Si ça marche pas, au moins tu sauras pourquoi.


---------------
TriScale innov
n°1531927
aneurysm
Posté le 22-03-2007 à 08:32:41  profilanswer
 

j'en ai parlé avec mon prof et théoriquement le beck ne peut pas communiquer avec le protocole MySQL, en effet le beck ne dispose que d'une seule librairie (CLIB.H), auquel je peux quand meme rajouter les librairies de base, stdio.h, dos.h, le seul moyen serait de dévelloper un driver MySQL mais apparement ca serait le gros bordel et ca n'est carrement (CARREMENT) pas de mon niveau.

n°1531929
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-03-2007 à 08:51:03  profilanswer
 

aneurysm a écrit :

j'en ai parlé avec mon prof et théoriquement le beck ne peut pas communiquer avec le protocole MySQL, en effet le beck ne dispose que d'une seule librairie (CLIB.H), auquel je peux quand meme rajouter les librairies de base, stdio.h, dos.h, le seul moyen serait de dévelloper un driver MySQL mais apparement ca serait le gros bordel et ca n'est carrement (CARREMENT) pas de mon niveau.


Ben déjà tu devrais cesser de confondre 'librairie' (bibliothèque) et fichier d'en-tête...
 
http://mapage.noos.fr/emdel/notes.htm#bibliotheque
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1531937
aneurysm
Posté le 22-03-2007 à 09:12:18  profilanswer
 

ah voui je m'exprime mal désolé
en tout cas je suis arrivé a envoyer la requête et à l'executer!
Le problème est qu'il faut que je me déconnecte pour que la requête s'execute...??
Autrement dit tout retour de valeur est impossible.
Si quelqu'un avait une idée?

n°1531963
_darkalt3_
Proctopathe
Posté le 22-03-2007 à 09:40:03  profilanswer
 

t'as lu ce genre de pages ?
http://lfe.developpez.com/BCBmySQL/


---------------
Töp of the plöp
n°1531967
Taz
bisounours-codeur
Posté le 22-03-2007 à 09:45:11  profilanswer
 

aneurysm a écrit :

j'en ai parlé avec mon prof et théoriquement le beck ne peut pas communiquer avec le protocole MySQL, en effet le beck ne dispose que d'une seule librairie (CLIB.H), auquel je peux quand meme rajouter les librairies de base, stdio.h, dos.h, le seul moyen serait de dévelloper un driver MySQL mais apparement ca serait le gros bordel et ca n'est carrement (CARREMENT) pas de mon niveau.


déjà y a confusion entre .h et biblitothèque.
ensuite je pense que le portage est plus facile que tout refaire de zéro, surtout sans lire la spécification avec une approche "j'ai qu'a send'er sur le port machin"

n°1531986
aneurysm
Posté le 22-03-2007 à 10:13:42  profilanswer
 

Bin dans tout les cas je n'ai pas besoin de tout refaire à zéro étant donné que l'approche "j'ai qu'a send'er sur le port machin" a l'air de fonction en envoie. Je voudrai juste comprendre pourquoi je dois me déconnecter du socket pour qu'il execute la requête.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [RESOLU] connection socket

 

Sujets relatifs
[Résolu] Gros problème de cache[résolu] Variables dynamiques dans des classes
[javascript][résolu] charger une nouvelle page avec window.onloadVBA access execution de macro [résolu]
[Résolu] [Divers] crash d'un programme (Newsleecher)[Résolu] Remplacement d'une chaine par <BR/>
[résolu] pbm session[Résolu] .htaccess chez Free...
warnings: listes chainée [résolu]Batch connection à nas
Plus de sujets relatifs à : [RESOLU] connection socket


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR