Ma question concerne simplement la différence de performance entre une socket en C et en Python. Étant donné que mon build Python est CPython, je suppose que c'est similaire, mais je suis curieux de savoir si quelqu'un a réellement de "vrais" benchmarks, ou du moins une opinion basée sur des preuves.C/Python Socket Performance?
Mes logiques est en tant que tel:
- socket C beaucoup plus rapide? puis écrivez une extension C .
- pas/à peine une différence? continuer à écrire en Python et comprendre comment obtenir le contrôle de niveau des paquets (scapy? Dpkt?)
Je suis sûr que quelqu'un voudra savoir soit pour le contexte ou la curiosité. J'ai l'intention de construire une sorte de proxy pour moi-même (pas pour la navigation sur Internet, l'anonymat, etc.) et lier l'application que je veux utiliser avec un port spécifique. Ensuite, tous les paquets sur le port seront mis en attente, l'en-tête d'adresse sera modifié, puis envoyé, etc.
Merci d'avance.
Merci Greg. Vous avez particulièrement raison à propos de "est-ce possible?" Je ne le crois pas. dpkt permet de construire des paquets, mais je suis persuadé que je ne peux pas utiliser le socket python au niveau du paquet (par opposition à son but d'abstraction). Donc, je crois que je vais devoir écrire une extension C afin que je puisse utiliser la bibliothèque netfilter qui permettrait de le faire. Mais ... cela peut nécessiter que je fasse les sockets en C (je ne sais pas, je n'ai jamais fait d'extension C auparavant). – Kevin
@Kevin, pourquoi es-tu sûr que tu ne peux pas faire ça? Le support de la prise "brute" ne convient-il pas? (Voir le dernier exemple à la fin de http://docs.python.org/library/socket.html pour les débutants.) –