|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 50 ![]() |
Bonjour,
Je rencontre un problème avec la réponse à ma socket. Je sniffe la com et je vois bien passer la socket en emition et reception mais je n'ai rien dans mon 'socket_read'. Code :
Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Tu aurais peut être un début de réponse en enlevant le @ devant ton socket read
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 50 ![]() |
Merci pour ta réponse.
Déjà fait. "PHP Warning: socket_read(): unable tu read from socket [0] : Une tentative de connexion a échouée car le parti connecté n'a pas repondu convenablement...... bla bla bla" Alors que Wireshark voit bien le retour. |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
Plus sérieusement voir la réponse dans wireshark ne veux pas dire que ta socket à réussit à la lire. C'est d'autant plus vrai en UDP qui se contente de balancer des packet sur le réseau sans savoir si il arrive ou non. Le serveur de l'autre coté est en quel langage ? Tu est certai nque la socket est en UDP ? Une socket en SOCK_STREAM TCP n'est pas envisageable au moins le temps de tester ? |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 50 ![]() |
Oui je sais qu'en UDP il n'y a aucun contrôle et aucun moyen de tester en TCP.
Ce qui me dit qu'il y a un problème dans mon code c'est que wireshark voit la réponse et qu'elle est bonne. En fait je me demande même si le socket_read n'est pas executé en retard donc que la réponse à la socket est déjà reçue... Ca se fait de mettre le socket_read avant le socket_send ? |
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
Et puis je vois pas comment une requête réseau pourrait aller plus vite que l'appel à une fonction (la socket se met en lecture dès l'envoi fini). En revanche dans ton code tu lit une fois 255 octet dans le if puis tu essai d'en relire encore 255. Donc si tu ne renvoi à ton php que 255 octets c'est normal que ton $data soit vide puisque lu juste avant. Quelque chose comme ceci serait peut être plus jsute : Code :
|
|||
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 50 ![]() |
Oui c'était très maladroit...
j'ai corrigé ! Retournons la question : J'envoie la socket et elle revient (ça c'est factuel puisque mesuré avec Wireshark). Pu'est-ce qui pourrait faire que je ne la reçoit pas dans mon socket_read() ? |
|
|
00
|
|
|
#8 | |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
|
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2007 Messages : 50 ![]() |
Certainement... mais il renvoit la réponse avant.
Je viens de m'apercevoir d'une chose bizarre... Ma requete sort du PC du 2282 vers le port 6700 en UDP. La réponse sont du serveur du 6700 vers le 6700 de mon PC !!! Donc il me faut une écoute sur le port 6700 puisqu'il n'est pas le même que le port sortant. Mon raisonnement est-il correcte ? |
|
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com