borg Geschrieben January 25, 2013 at 20:26 Geschrieben January 25, 2013 at 20:26 Es hat sich herausgestellt, dass wir die Sockets unbedingt mit "TCP_NODELAY" konfigurieren müssen, da es sonst durch das verwendete Betriebssystem zu langen Latenzzeiten kommen kann (siehe hier: http://www.tinkerunity.org/forum/index.php/topic,1306.msg8384.html). Wir konnten allerdings trotz längerer Suche nicht herausfinden wie man diese Einstellung in Delphi vornimmt. Für die anderen Sprachen gibt es hier einen Diff: https://github.com/Tinkerforge/generators/commit/2ddcb2b9cd6098e12900512397d9c60195c31f31 Und für FreePascal hier: https://github.com/Tinkerforge/generators/commit/db828091a7996ee69b775bdabd0ed00d7f48c251 Falls sich jemand von euch da auskennt, wären wir über sachdienliche Hinweise dankbar! Ein Link zur passenden Dokumentation o.ä. würde vermutlich schon reichen . Zitieren
remotecontrol Geschrieben January 26, 2013 at 18:52 Geschrieben January 26, 2013 at 18:52 Bei Delphi muss ich eigentlich passen, aber diverse Foren sagen, dass es auch sowas wie ein "setsockopt" gibt, ähnlich wie in C, z. B. http://www.delphipraxis.net/169249-tidtcpclient-keine-verzoegerung-beim-senden-der-daten.html. Sowas schon probiert? Zitieren
AuronX Geschrieben January 26, 2013 at 23:48 Geschrieben January 26, 2013 at 23:48 Ein Kommilitone meinte zu mir man könnte noch unter dem Stichwort NoNagle suchen ^^ Zitieren
Nic Geschrieben January 29, 2013 at 10:08 Geschrieben January 29, 2013 at 10:08 In Delphi bin ich einiges gewohnt, aber die Socket-Untiefen eher weniger, aber ev. hilft das http://forum.delphi-treff.de/archive/index.php/t-18615.html Beispiel für das Setzen der Property TCP_NODELAY mittels setsockopt auf einem Socket in Delphi: http://www.delphipraxis.net/161942-wie-tclientsocket-einer-dll-verwenden.html Zitieren
photron Geschrieben January 29, 2013 at 10:25 Geschrieben January 29, 2013 at 10:25 Das Problem war das in den Delphi Bindings TTcpClient verwendet wurde und da konnte ich nicht herausfinden wie ich da TCP_NODELAY setze. TTcpClient hat werder eine direkte Option für TCP_NODELAY noch eine SetSockOpt Funktion. TIdSocketHandle aus dem Indy Package hat SetSockOpt aber da wollte ich mich nicht auf die Verfügbarkeit von Indy verlassen müssen. Ich bin gerade dabei das einfach mit WinSock neu zuschreiben, da hab ich dann setsockopt und alles ist gut. Dennoch Danke für die Hinweise. Es gibt dann gleich eine neue Version der Delphi Bindings. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.