Tyreal
03-02-2012, 14:51
Salve a tutti,
prepongo che ciò che devo chiedere non ha nulla a che spartire con un Dos et simila :)
ho realizzato un server in C++ con epoll (http://en.wikipedia.org/wiki/Epoll) per testarlo al confronto della "vecchia" select.
il mio problema deriva dal fatto che dovrei testarlo con circa 1000 utenti, ma è una follia aprire 1000 terminali così ho cominciato a cercare soluzioni basate sulla programmazione.
Ho provato con uno script bash e con python (dei quali sono molto, molto ignorante :) )
#!/bin/bash
for i in $(seq 1 1000); do nc localhost 2020; done
e
import getpass
import sys
import telnetlib
import time
HOST = "localhost"
i=0
while i<1000:
i=i+1
print i
tn = telnetlib.Telnet(HOST, 2020)
time.sleep(1)
il problema di entrambi è che eseguono una connessione e subito dopo la sua disconnessione (o al più un paio di connessioni prima di disconnettersi per la priorità dei flag di epoll) non lasciandomi provare la "reattività" del server con i 1000 utenti connessi contemporaneamente.
come posso fare? non avendo mai fatto una cosa del genere non so bene da dove iniziare, non dovrò mica threaddare ogni chiamata?! :mbe:
Grazie!
saluti
Riccardo
prepongo che ciò che devo chiedere non ha nulla a che spartire con un Dos et simila :)
ho realizzato un server in C++ con epoll (http://en.wikipedia.org/wiki/Epoll) per testarlo al confronto della "vecchia" select.
il mio problema deriva dal fatto che dovrei testarlo con circa 1000 utenti, ma è una follia aprire 1000 terminali così ho cominciato a cercare soluzioni basate sulla programmazione.
Ho provato con uno script bash e con python (dei quali sono molto, molto ignorante :) )
#!/bin/bash
for i in $(seq 1 1000); do nc localhost 2020; done
e
import getpass
import sys
import telnetlib
import time
HOST = "localhost"
i=0
while i<1000:
i=i+1
print i
tn = telnetlib.Telnet(HOST, 2020)
time.sleep(1)
il problema di entrambi è che eseguono una connessione e subito dopo la sua disconnessione (o al più un paio di connessioni prima di disconnettersi per la priorità dei flag di epoll) non lasciandomi provare la "reattività" del server con i 1000 utenti connessi contemporaneamente.
come posso fare? non avendo mai fatto una cosa del genere non so bene da dove iniziare, non dovrò mica threaddare ogni chiamata?! :mbe:
Grazie!
saluti
Riccardo