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

Réseau/Web Python Discussion :

Un p'tit procsy :)


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 16
    Points
    16
    Par défaut Un p'tit procsy :)
    Yop all,

    Je suis actuellement en train de coder un p'tit proxy web en python, tout bête.
    En gros, je fais un listen, le fork() en cas de connexion, ensuite dans le fils, je récupère la requête (ça marche), je parse l'adresse de l'hôte (pour pas envoyer un GET http://www.google.fr HTTP/1.1 etc, mais bien un GET / HTTP/1.1), et je renvoie tout.

    Bon, sauf que voila, je reçois rien en retour. J'ai jeté un oeil avec un sniffer (wireshark, pour ne pas le citer), et, comparé au résultat d'un sniff sur firefox sans proxy, j'ai ces 2 différences:
    -la requête met beaucoup plus de temps à apparaitre dans ethereal avec un proxy (qques secondes de plus, y compris pour les paquets SYN/ACK...)... Mais ça vient pt'etre du fait que j'utilise sendall()... Je vais vérifier
    -le paquet contenant la requête est identifié comme [TCP segment of a reassembled PCU], alors qu'avec firefox j'ai un GET / HTTP/1.1...

    Du coup j'ai un p'tit peu jonglé avec les timeout, sans rien changer, et je me dis que ça vient du réseau, et pas de ma requête (elle est bien envoyée), et que doit me manquer un paramètre ici ou là. Sauf que j'ai utilisé le même style de code qu'un client ftp que j'avais codé, et qui, lui, marchait très bien...

    Voila, si quelqu'un a une idée... Je poste pas (encore) le code, vu que je doute que ça viene de là (et que je code comme un malpropre), mais si il fait besoin, no pb.

    Merci d'avance, et bonne soirée à tous


    EDIT: okay, j'ai compris d'où vient le retard dans mes envois/receptions, en fait, tout se fait d'un bloc lorsque le process fils exit... forcément, ça peut pas le faire bien longtemps. Ca me rappelle un peu le C, tiens .
    EDIT²: okay, aussi, en mettant un timeout, ça aide. Du coup retour au point de départ, je reçois rien du serveur, et mon paquet est bizarre...
    EDIT3: une fois de plus j'ai trouvé tout seul comme un grand :p. En fait lors du parsing de la requete, un \r\n (apres http\1.1) sautait... Mais, fait bizarre, pour que ça marche maintenant, faut que je vire le dernier 1 de http/1.1 et que je rajoute un\r\n à la place, sinon, mauvaise requete.

    EDIT 4: maintenant, autre problème, quoique je demande comme page, je me prend une erreur 302 qui me dit "le document a bougé àla même adresse...", du coup le browser recharge la même page, et ainsi de suite... Une idée d'où ça vient???

  2. #2
    Membre éprouvé
    Avatar de Antoine_935
    Profil pro
    Développeur web/mobile
    Inscrit en
    Juillet 2006
    Messages
    883
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur web/mobile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 883
    Points : 1 066
    Points
    1 066
    Par défaut
    Citation Envoyé par strayyy Voir le message
    le fork()
    Evite les fork, c'est lourd à mourir et ça peut tuer ton linux en cas de surcharge.

    EDIT 4: maintenant, autre problème, quoique je demande comme page, je me prend une erreur 302 qui me dit "le document a bougé àla même adresse...", du coup le browser recharge la même page, et ainsi de suite... Une idée d'où ça vient???
    10 contre 1 que tu as un header Set-Cookie dans la réponse

Discussions similaires

  1. [MySQL] Petite optimisation à faire… tit bug en perspective !
    Par almisuifre dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 20/02/2006, 21h58
  2. [Batch] Tit prog pour ouvrir une page internet
    Par toniovitch dans le forum Windows
    Réponses: 1
    Dernier message: 17/09/2005, 16h20
  3. [reseaux] Fais dodo, process, mon p'tit père....
    Par GLDavid dans le forum Programmation et administration système
    Réponses: 22
    Dernier message: 14/07/2004, 15h20

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