IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

TCP et l'accusé de réception (ACK) [PHP 5.5]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut TCP et l'accusé de réception (ACK)
    Bonsoir,

    Mon script envoie les informations à un webservice.
    Lorsque ce webservice envoie l'ACK (l'accusé de réception / la réponse) dans un délai long (>8 secondes), le protocole TCP exécute le script la 2e fois pour envoyer les informations à webservice.

    Comment puis-je augmenter cette attente de délai pour que TCP ne la renvoie pas tout de suite les informations (en deuxième fois)?
    Autrement dit, comment puis-je augmenter ce délai pour 12 secondes ?

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne vois pas bien ce que viennent des composantes réseau (protocle TCP, flag ACK) dans les éléments applicatifs (le webservice, ton script PHP).
    En particulier le protocole TCP n'execue pas de script.

    Enfin ... je ne pense pas que ton script produise lui même ses segments TCP ; il envoie une requête et c'est tout non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Bonjour Sabotage,
    Je ne sais plus... c'est tellement compliqué cette histoire. Pourtant mon script est très simple :

    Il y a un web service où mon script envoie les informations par la fonction cUrl.
    Le script, par le cUrl, récupère les informations de connexion (curl_getinfo) et les enregistre dans un fichier de log.
    Il enregistre aussi les erreurs (curl_errno et curl_error) s'il y en a
    Il ferme le cUrl (curl_close)

    Ça marche très bien 33/35.
    Par contre, il y a rarement de problème, 2/35 :
    Il envoie 2 fois la même information.

    J'ai vérifié les fichiers de log ( par curl_getinfo) :
    Lorsqu'il y a un envoi double, c'est toujours :
    le "total_time" est plus que 7 secondes.
    Dans le temps normal, donc pas de doublement, c'est entre 1 et 6 secondes.


    C'est pour cela que je veux augmenter ce délai pour 12 secondes, mais je ne sais pas comment (où) puis-je ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'après mes recherches cURL ne fait de lui même qu'un seul essai. Est-il possible que ce traitement du timeout vienne de ton code ?
    S'agit-il d'une tâche planifiée ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Non ce n'est pas une tache planifiée, mais c'est une notification d'un Webhooks qui déclenche mon script lorsqu'il y a un enregistrement

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Par défaut
    Salut S a b o t a g e,

    Citation Envoyé par sabotage Voir le message
    D'après mes recherches cURL ne fait de lui même qu'un seul essai. Est-il possible que ce traitement du timeout vienne de ton code ?
    S'agit-il d'une tâche planifiée ?
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
     
    <?php
    $data_venu_converti = json_decode($data_venu);
    $data_venu_converti_en_tableau = json_decode($data_venu, true);
     
    $date_creation_fichier = date("Ymd");
    $numero_commande = $data_venu_converti_en_tableau['order_number'];
     
    $fichier_log = '\log__' . $numero_commande . '__' . $date_creation_fichier. '.log';
    $fichier_log_info_connexion = '\erreur__connexion_curl' . $numero_commande . '_' . $date_creation_fichier. '.log';
     
    $numero_commande = $data_venu_converti->order_number;
     
    foreach ($data_venu_converti->items_prod as $key_value_article)
    	{
    		switch($key_value_article->dealer)
    			 {
    				 case 'fOOd' :
    					$article_id = $key_value_article->id;
     
    					$prix = $key_value_article->price;
     
    					$info_facture = '<class_categorie><numero_commande>' . $numero_commande . '</numero_commande>';     	 
     
     
    					$info_facture .= '<prix>
    												
    												<dollar_ca>' . number_format($prix, 2, '.', '')*10 . '</dollar_ca> 	';			   
     
    					$info_facture  .= '</prix></class_categorie>';
     
    					$webserice = $url . '?identite=' . $identification . '&mdp=' . $mdp ;
     
    					$curl = curl_init();
     
    					curl_setopt($curl, CURLOPT_URL, $webserice);
    					curl_setopt($curl, CURLOPT_POST, true);
     
    					curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    					curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
     
    					curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array('xml' => $info_facture)));
    					curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     
    					$transfert_info = curl_exec($curl);
    					$info_sur_transfert_curl = curl_getinfo($curl);
     
     
    					$information_recup_data = 'transfert info :' . serialize($info_sur_transfert_curl) . '<br> ce que l\'on a envoyé'. $transfert_info;
     
    					$curl_errno = NULL;
    					$curl_error = NULL;
     
    					if(curl_errno($curl))
    					{			
    						$curl_errno = curl_errno($curl);
    						$curl_error = curl_error($curl);
    					}
    					curl_close($curl);	
     
    					if($curl_errno)
    					{
    						$info_erreur_curl = 'numero d\'erreur' . $curl_errno . ' titre erreur'. $curl_error;
    						file_put_contents($repertoire_fichiers.$fichier_log_info_connexion, $info_erreur_curl, FILE_APPEND | LOCK_EX);
     
    					}
     
    					file_put_contents($repertoire_fichiers.$fichier_log, $information_recup_data, FILE_APPEND | LOCK_EX);
     
    					break;
     
    				default:
    				  // rien a faire
    				break;
     
    			 }
     
    	 }		
    die();
    ?>
    À ton avis, est-ce que ce problème vienne de mon code ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Mail] Accusé de réception pour e-mail en PHP
    Par Dirty Harry dans le forum Langage
    Réponses: 12
    Dernier message: 30/08/2011, 17h33
  2. confirmer accusé de réception Email
    Par MalcolmDev dans le forum WinDev
    Réponses: 4
    Dernier message: 20/03/2007, 14h56
  3. Mail avec accusé de réception (méthode CDO)
    Par dom62 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 08/08/2006, 11h45
  4. Envoi mail avec Outlook accusé de réception
    Par KapoueMan dans le forum Access
    Réponses: 2
    Dernier message: 14/04/2005, 10h41
  5. Comment demander un accusé de réception avec TIdMessage ?
    Par Isa31 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 07/01/2005, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo