communication code php et C via sockets - C - Programmation
Marsh Posté le 12-02-2006 à 19:37:14
krocky a écrit : Quelqu'un aurait-il une idée ? |
Moi, quand je fais un "listen", je demande quand-même "1" connexion possible et non "0". Mais cela ne vient peut-être pas de là...
Ecris un client en C et regarde si le problème se reproduit...
Marsh Posté le 12-02-2006 à 20:29:48
J'ai testé avec un 1, mais, cela ne change rien. Il me semble que le zéro signifie que l'on peut accepter autant de connexions que l'on souhaite.
Il faudrait en effet que je teste un client en C...
SInon, pour info, je code sous windows avec Dev-C++.
Ce qui est très bizzare, c'est que recv() ne reçoit pas de code d'erreur, il est vraiment toujours en attente de données alors que mon code php s'égosille à lui en envoyer et me dit lui aussi que la connexion est toujours établie. Comme si le recv() en avait marre d'attendre et décidait de ne plus rien recevoir au bout de 15 secondes d'incativité.
Marsh Posté le 12-02-2006 à 17:59:50
Salut !
Alors, voila mon problème. J'ai crée un serveur en C qui attend des données de nimporte quel client.
Voici son code :
De l'autre coté, j'ai un code PHP qui est censé envoyé des données à mon programme à partir d'un formulaire. Le voici (en partie):
Voila...
Tout ceci fonctionne parfaitement... mais pendant une durée limitée seulement !
En gros, je lance mon serveur (programme en C), puis, je lance firefox et me connecte à mon site en local (j'ai easy php), je sélectionne une valeur dans un menu déroulant qui l'envoie au code php ci-dessus, et ce dernier l'envoie bel et bien à mon serveur qui m'affiche la valeur choisie.
Je peux répeter cette opération autant de fois que je le veux sans qu'il y ait probleme.
Par contre, si je n'envoie plus rien pendant environ 15 secondes, mon serveur se bloque en réception et j'ai beau envoyé des données, le serveur s'en tête à m'afficher : "toujours rien" toutes les 5 secondes.
Alors, je suppose que soit mon code php soit mon code C crée une socket avec un timeout par défaut d'environ 15 secondes, mais, je trouve ça vraiment bizzare.
J'espère avoir été clair.
Comment faire pour pouvoir envoyer des données sans qu'une interruption bloque mon programme ? Quelqu'un aurait-il une idée ? Merci d'avance.