Achja, das Programm muß unter Windows laufen, was vielleicht bei Variante 1 für Probleme sorgt. In einem ersten Versuch wird ein Programm (geschrieben als Consolenapplikation mit Delphi7), das nur open socket, connect, send, close socket macht, zum Speicherfresser. Windows (Delphi?) belegt offensichtlich für jedes geöffnete Socket Speicher, gibt den aber bei close socket nicht (gleich?) wieder frei.
Wie hast Du denn festgestellt, daß es zum Speicherfresser wird?
Für meine Begriffe riecht das eher nach einem Speicherleck in Deinem Programm.