Laden...

KeepAlive unter Win7

Erstellt von Gmi vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.148 Views
G
Gmi Themenstarter:in
33 Beiträge seit 2008
vor 13 Jahren
KeepAlive unter Win7

Hallo,

ich schlage mich mit einem Problem herum, für das ich bisher keine Lösung im Web gefunden habe:
Ich möchte ein KeepAlive bei einer Socketverbindung aktivieren, damit ein Verbindungsabbruch detektiert werden kann. Bei WinXP funktioniert das auch gut. Wenn ich mit Wireshark sniffe, dann werden regelmäßig KeepAlive Packete gesendet. Wenn ich das gleiche Programm unter Win7 laufen lassen fehlen diese KeepAlive Packete. Ich möchte das KeepAlive nicht über die Registry festlegen, da es dann für alle Verbindungen gilt.
Folgenden Code verwende ich:


uint dummy = 0;
            byte[] inOptionValues = new byte[Marshal.SizeOf(dummy) * 3];
            BitConverter.GetBytes((uint)(keepaliveTime)).CopyTo(inOptionValues, 0);
            BitConverter.GetBytes((uint)keepaliveTime).CopyTo(inOptionValues, Marshal.SizeOf(dummy));
            BitConverter.GetBytes((uint)keepaliveInterval).CopyTo(inOptionValues,Marshal.SizeOf(dummy) * 2);

            // write to Socket IOControl 
            socket.IOControl(IOControlCode.KeepAliveValues, inOptionValues, null);

Hat jemad eine Idee, woran es liegen kann?

M
1.439 Beiträge seit 2005
vor 13 Jahren

Rückgabewert schon mal ausgewertet?

G
Gmi Themenstarter:in
33 Beiträge seit 2008
vor 13 Jahren

Vielen Dank für die Nachfrage: Der Rückgabewert ist unter XP und Win7 jeweils 0, das ist aber auch nicht verwunderlich, da er die Anzahl der Bytes im OptionOutValue angibt, der ist aber bei mir in diesem Fall "null".