Files
FG2608061/反编译CODE/华晓AGV管理系统/Cls/SocketExtensions.cs
T

47 lines
1.2 KiB
C#

using System;
using System.Net.Sockets;
namespace AGVSystem.Cls
{
// Token: 0x0200002E RID: 46
public static class SocketExtensions
{
// Token: 0x06000289 RID: 649 RVA: 0x00053698 File Offset: 0x00051898
public static bool SetKeepAlive(this Socket socket, ulong time, ulong interval)
{
try
{
ulong[] array = new ulong[]
{
(time == 0UL || interval == 0UL) ? 0UL : 1UL,
time,
interval
};
byte[] array2 = new byte[12];
for (int i = 0; i < array.Length; i++)
{
array2[i * 4 + 3] = (byte)(array[i] >> 24 & 255UL);
array2[i * 4 + 2] = (byte)(array[i] >> 16 & 255UL);
array2[i * 4 + 1] = (byte)(array[i] >> 8 & 255UL);
array2[i * 4] = (byte)(array[i] & 255UL);
}
byte[] bytes = BitConverter.GetBytes(0);
socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.KeepAlive, true);
socket.IOControl((IOControlCode)((ulong)-1744830460), array2, bytes);
}
catch (SocketException ex)
{
Console.WriteLine("Failed to set keep-alive: {0} {1}", ex.ErrorCode, ex);
return false;
}
return true;
}
// Token: 0x04000663 RID: 1635
private const int BytesPerLong = 4;
// Token: 0x04000664 RID: 1636
private const int BitsPerByte = 8;
}
}