Ich versuche mit dem Standard Beispielen echo_server und echo_client eine "schnelle" Verbindung aufzubauen.
Server:
Code: Alles auswählen
import socket
HOST = '' # Symbolic name meaning all available interfaces
PORT = 8080 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
data = conn.recv(1024)
print (data)
if not data: break
conn.send(data)
conn.close()
Wenn das auf meinem Mac lokal läuft, dann sind die 10000 Aufrufe in ca. 2 Sekunden gelaufen.# Echo client program
import socket
HOST = 'euve11542.vserver.de' # The remote host
#HOST = '127.0.0.1' # lokale Maschine
PORT = 8080 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
for i in range(0,10000):
s.send('Hello, world'+ str(i))
data = s.recv(1024)
print ('Received', data)
s.close()
Wenn ich das übers Internet (Server im Internet) laufen lasse, dann dauern die 10000 Aufrufe eine Ehhhhwigkeit,
ich breche das dann besser ab, es gehen so ca. 20-30 Aufrufe pro Sekunde durch.
Gibt es eine Möglichkeit das schneller zu machen ????
Es liegt offensichtlich nicht an der Leitung oder den beteiligten Rechnern/Routern etc., da
ich folgende Tests bereits gemacht habe:
Nur schreiben vom Client und Empfangen vom Server (Mac zuHause und Server im Internet und umgekehrt )
geht ebenfalls alles ratzt fatz.
Sobald jedoch der Client schreibt und liest, wirds so langsam wie oben beschrieben.
Es sieht so aus, als ob beim Schreiben und Lesen auf dem Client die Verbindung jedesmal neu aufgebaut wird.
Das heist die Verbindung bleibt nicht permanent offen.
Ich habe exakt die gleichen Ergebnisse mit Lua !!!
Was kann ich tun ??? Jede Hilfe/Anregung ist willkommen.