la mia domanda si riferisce semplicemente alla differenza di prestazioni tra un socket in C e in Python. Dato che la mia build di Python è CPython, presumo sia simile, ma sono curioso di sapere se qualcuno abbia effettivamente dei "veri" benchmark o almeno un'opinione basata su prove.Prestazioni C/Python Socket?
mie logiche è come tale:
- presa C molto più veloce? quindi scrivere un'estensione C .
- non/a malapena una differenza? continuare a scrivere in Python e capire come ottenere il controllo a livello di pacchetto (Scapy? Dpkt?)
Sono sicuro che qualcuno vorrà sapere sia per contesto o curiosità. Ho in programma di costruire una sorta di proxy per me stesso (non per la navigazione in Internet, l'anonimato, ecc.) E legherò l'applicazione che voglio utilizzare con essa su una porta specifica. Quindi, tutti i pacchetti su detta porta verranno accodati, l'intestazione dell'indirizzo modificata e quindi inviata, ecc. Ecc.
Grazie in anticipo.
Grazie Greg. Hai particolarmente ragione riguardo a "è possibile?" Non credo che lo sia. dpkt permette la possibilità di costruire pacchetti, ma sono sicuro di non poter usare il socket python a livello di pacchetto (contro il suo scopo di astrazione). Quindi, credo che dovrò scrivere un'estensione C in modo da poter usare la libreria netfilter che permetterebbe di farlo. Ma ... questo potrebbe richiedere che io faccia le prese in C (non lo so, non ho mai fatto un'estensione C prima). – Kevin
@ Kevin, perché sei sicuro di non poterlo fare? Il supporto socket "raw" non è adatto? (Vedi l'ultimo esempio alla fine di http://docs.python.org/library/socket.html per i principianti.) –