Forum: PC-Programmierung tcp response.zeit


von Klaus H. (klausc127)


Lesenswert?

Hallo,
folgendes Problem: von meinem Mikro (lpcxpresso) muss ich Daten vom PC 
über tcp/ip holen. Auf dem PC läuft ein in C# programmierter kleiner 
Server, auf dem mikro ein von easyweb abgeleiteter client. Funktioniert 
auch alles tadellos nur die Antwortzeit bis die Daten kommen ist zu 
lang, 05 sek. benötigt werden 0,1sek. Der PC ist schnell genug, hat 
windows 7.
Probiert mit: anderem langsamen PC XP, mit und ohne Router, mit und ohne 
Switch, immer 0,5 sek. Das acknowledge kommt spontan nach 0,001 sek.

Wo könnte ich ansetzen, um die Daten schneller geliefert zu bekommen?
(Stellschrauben im Windows, Einstellungen beim tcp...
andere Programmiersprache, anderes Protokoll (udp..)...)

Danke für jeden Tip
Klaus

von Marcus B. (raketenfred)


Lesenswert?

Ohne Quelltext werden die dich gleich mit ihren Kristallkugeln prügeln

C# sollte schon schnell genug sein, wenn man damit vernünftig 
programmiert

von Jens G. (jensig)


Lesenswert?

Wird wohl Sein Serverprogramm sein, welches bißchen schläft.
Mit einem Sniffer (wireshark oder sowas) den TCPIP-Verkehr anschauen. 
Wenn nach dem acknowledge ewig nix kommt, dann ist es wohl dein 
Serverprogramm. Dort also ansetzen. Der TCPIP-Stack wird es wohl kaum 
sein, wenn es auch unter XP auftritt, bzw. wenn andere TCPIP-Programme 
kein derartiges Problem haben.

von Klaus H. (klausc127)


Angehängte Dateien:

Lesenswert?

Hallo nochmal,
anbei ein Auszug aus dem Quelltext (sorry, wenn die Formatierung jetzt 
ein bisschen "schräg" ist).
ich habe mich hier nach dem Beispiel
http://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server
gerichtet.
In der while-Schleife ist meine Verarbeitung. Ich habe hier nur einen 
Auszug eingestellt.
Wenn eine Anfrage kommt, lese ich die Datei und schicke das ganze mit 
ein paar Zusatzinformation davor auf die Reise. Die Grösse der Dateit 
hat keinen Einfluss auf die Antwortzeit. Auch wenn ich die Daten ganz 
weglasse und nur 5 Bytes Zusatzinfo schicke (z.B. bei Fehler), dauert es 
0,5 sek.

Das ganze habe ich mit whireshark kontrolliert.

Danke für Hilfe
Klaus

von Markus_AC (Gast)


Lesenswert?

Zeigt doch mal einen Auszug aus dem Wireshark.
Ich hatte vor kurzem das Problem, dass das ACK lange auf sich warten 
ließ (wegen des Nagle-Algorithmus).

von Markus V. (valvestino)


Lesenswert?

@Klaus
Vielleicht installierst Du mal die 10-Tage-Test-Version von JetBrains 
dotTrace (Profiler, http://www.jetbrains.com/profiler/) und schaust mal, 
wo die 0,5 Sekunden bleiben. dotTRace intergriert sich ins VisualStudio 
und ist recht einfach zu bedienen und zu verstehen.

Gruß
Markus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.