borg Posted January 25, 2013 at 08:26 PM Share Posted January 25, 2013 at 08:26 PM 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 . Quote Link to comment Share on other sites More sharing options...
remotecontrol Posted January 26, 2013 at 06:52 PM Share Posted January 26, 2013 at 06:52 PM 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? Quote Link to comment Share on other sites More sharing options...
AuronX Posted January 26, 2013 at 11:48 PM Share Posted January 26, 2013 at 11:48 PM Ein Kommilitone meinte zu mir man könnte noch unter dem Stichwort NoNagle suchen ^^ Quote Link to comment Share on other sites More sharing options...
Nic Posted January 29, 2013 at 10:08 AM Share Posted January 29, 2013 at 10:08 AM 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 Quote Link to comment Share on other sites More sharing options...
photron Posted January 29, 2013 at 10:25 AM Share Posted January 29, 2013 at 10:25 AM 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. Quote Link to comment Share on other sites More sharing options...
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.