Ich glaube nicht, dass bei deinem geposteten Beispiel MTU oder TcpNumConnections eine Rolle spielen.
Du baust ja eine 1:1 und lokale Verbindung auf => MTU Wert ist so ziemlich egal und die eine
tcp Verbindung, welche du aufbaust sprengt - ausser vielleicht bei Uralt Win 3.1
- kaum TcpNumConnections.
Wenn ich dein Programm laufen lasse und die Verbindung aufbaue, anschliessend dein Fenster rumschubsen will, dann reagiert es bereits nach kurzer Zeit nicht mehr wie es sein sollte. (Ruckeln)
Das deutet auf ein Problem mit der Windows Warteschlange hin.
Du knallst mit deinem WM_LOG die Windowswarteschlange zu.
Kommentiere mal in lib_simplelog.info() Zeile
// PostMessage(LogHandle, LogMessage, wParam(Logline), 0);
aus.
Wenn ich das bei mir tue, dann reagiert das Fenster wie es sein sollte und ich kann 100'000+ Pakete übertragen, ohne irgendwelche Probleme festzustellen.
Zum Code: Du weisst ja sicher, dass ICS auch SendStr und ReceiveStr/ReceiveStrA kennt. Wahrscheinlich hast du bewusst send(), receive() gewählt.
Du reagierst noch nicht auf mögliche Fehler. Bei einer direkten Verbindung ist in den meisten Fällen wohl "Neuaufbau und weiter..." der beste Weg.
Spannend wird es, wenn dein Netzwerk von vielen Beteiligten aufgespannt wird und Daten über mehrere Wege von A nach B fliessen.