In einem Versuch, TCP für schnelle und hohe Paketspiele zu verwenden, möchte ich die Paketverlusterkennung von TCP deaktivieren (Wenn ein Paket fehlschlägt, sendet es ein anderes), da dies die Zeit erhöht und es ist wirklich nicht nötig (es ist mir egal, ob 1-3 Pakete verloren gehen, mehr wird es in ein paar Sekunden überschreiben) Also, wie erreiche ich das mit der Programmiersprache C#?So deaktivieren Sie Paketverlustverhinderung TCP C#
Antwort
Verwenden Sie stattdessen UDP! Sie können es nicht deaktivieren.
Update:
Also habe ich nur nach Informationen zu dieser Frage gesucht und festgestellt, dass das Deaktivieren der Neuübertragung vom Betriebssystem möglich ist, aber zum Abbruch der Verbindung führen wird - was meine ursprüngliche Aussage unterstützt. Und die Nebenwirkungen werden für das gesamte Betriebssystem problematisch sein.
Für Windows: https://support.microsoft.com/en-us/kb/170359
Es wird sicherlich auch eine Einstellung für andere Betriebssysteme sein.
Ich möchte vermeiden, UDP zu verwenden, da ich gerne tatsächliche Verbindungsstatus habe. Kann ich noch etwas anderes tun? –
Implementieren Sie die Verbindungsstatus in Ihrem Programm. Dann benutze UDP. TCP erfordert, dass alle Pakete vom empfangenden Ende bestätigt werden. Es ist eine grundlegende Eigenschaft von TCP. –
- 1. Deaktivieren tcp langsamen Start
- 2. TCP verzögerte ACKs deaktivieren
- 3. So deaktivieren Sie E_STRICT
- 4. So deaktivieren Sie "periodicals_call_remote"
- 5. So übertragen Sie Bitmap mit TCP-Socket
- 6. So deaktivieren Sie alle Schaltflächen
- 7. So analysieren Sie TCP-Paket-Payload
- 8. So deaktivieren Sie Teilansichten ViewState?
- 9. Frühling Integration: TCP deaktivieren respnse lesen
- 10. So deaktivieren Sie eine TextView
- 11. So deaktivieren Sie den Größenänderungscursor
- 12. So deaktivieren Sie Python-Warnungen
- 13. So deaktivieren/deaktivieren Sie einige der GtkMenu-Elemente
- 14. So deaktivieren Sie die Tastenkombination in Tmux
- 15. So deaktivieren/aktivieren Sie die Netzwerkverbindung in C#
- 16. So deaktivieren Sie eine Schaltfläche beim Start (Visual C# winforms)
- 17. C++ boost tcp-server
- 18. So deaktivieren Sie Verknüpfungen in WPF TextBox
- 19. So deaktivieren Sie die Testbereitstellung in VS2012
- 20. So deaktivieren Sie die Schattenerkennung in MoG2
- 21. Objective-C Bonjour/TCP-Stack
- 22. So deaktivieren Sie eine Optimierung in LLVM
- 23. So deaktivieren Sie JavaScript für Responsive Design
- 24. So deaktivieren Sie einen Link in IE6
- 25. So ändern Sie Bild und deaktivieren UIBarButtonItem
- 26. So deaktivieren Sie Paging in WebGrid
- 27. So deaktivieren Sie SPDY in Google Chrome
- 28. So deaktivieren Sie NSDocument Fenster Titel Popup
- 29. So deaktivieren Sie Pinch in Android MapView
- 30. MVC3 So deaktivieren/aktivieren Sie ActionLink
Ich habe keine Dokumentation gefunden, um dies zu ändern, so dass es nicht viel zu versuchen gibt. Ich habe jedoch versucht TcpClient.NoDelay = true; was nicht tut, was ich dachte, dass es getan hat. –