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
Ohne Quelltext werden die dich gleich mit ihren Kristallkugeln prügeln C# sollte schon schnell genug sein, wenn man damit vernünftig programmiert
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.
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
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).
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.