public static SocketError SetLingerOption(SafeCloseSocket handle, LingerOption optionValue) { Interop.Winsock.Linger lngopt = new Interop.Winsock.Linger(); lngopt.OnOff = optionValue.Enabled ? (ushort)1 : (ushort)0; lngopt.Time = (ushort)optionValue.LingerTime; // This can throw ObjectDisposedException. SocketError errorCode = Interop.Winsock.setsockopt( handle, SocketOptionLevel.Socket, SocketOptionName.Linger, ref lngopt, 4); return(errorCode == SocketError.SocketError ? GetLastSocketError() : SocketError.Success); }
public static SocketError GetLingerOption(SafeCloseSocket handle, out LingerOption optionValue) { Interop.Winsock.Linger lngopt = new Interop.Winsock.Linger(); int optlen = 4; // This can throw ObjectDisposedException. SocketError errorCode = Interop.Winsock.getsockopt( handle, SocketOptionLevel.Socket, SocketOptionName.Linger, out lngopt, ref optlen); if (errorCode == SocketError.SocketError) { optionValue = default(LingerOption); return(GetLastSocketError()); } optionValue = new LingerOption(lngopt.OnOff != 0, (int)lngopt.Time); return(SocketError.Success); }
public static SocketError GetLingerOption(SafeCloseSocket handle, out LingerOption optionValue) { Interop.Winsock.Linger lngopt = new Interop.Winsock.Linger(); int optlen = 4; // This can throw ObjectDisposedException. SocketError errorCode = Interop.Winsock.getsockopt( handle, SocketOptionLevel.Socket, SocketOptionName.Linger, out lngopt, ref optlen); if (errorCode == SocketError.SocketError) { optionValue = default(LingerOption); return GetLastSocketError(); } optionValue = new LingerOption(lngopt.OnOff != 0, (int)lngopt.Time); return SocketError.Success; }
public static SocketError SetLingerOption(SafeCloseSocket handle, LingerOption optionValue) { Interop.Winsock.Linger lngopt = new Interop.Winsock.Linger(); lngopt.OnOff = optionValue.Enabled ? (ushort)1 : (ushort)0; lngopt.Time = (ushort)optionValue.LingerTime; // This can throw ObjectDisposedException. SocketError errorCode = Interop.Winsock.setsockopt( handle, SocketOptionLevel.Socket, SocketOptionName.Linger, ref lngopt, 4); return errorCode == SocketError.SocketError ? GetLastSocketError() : SocketError.Success; }