public override void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue) { if (UnsafeMethods.setsockopt(Handle, optionLevel, optionName, ref optionValue, 4) == SocketError.SocketError) { throw new SocketException(); } }
public override void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue) { if (UnsafeMethods.setsockopt(Handle, optionLevel, optionName, optionValue, optionValue != null ? optionValue.Length : 0) == SocketError.SocketError) { throw new SocketException(); } }
private void SetLingerOption(LingerOption lref) { var optionValue = new Linger() { OnOff = lref.Enabled ? (ushort)1 : (ushort)0, Time = (ushort)lref.LingerTime }; if (UnsafeMethods.setsockopt(Handle, SocketOptionLevel.Socket, SocketOptionName.Linger, ref optionValue, 4) == SocketError.SocketError) { throw new SocketException(); } }
private void SetIPv6MulticastOption(SocketOptionName optionName, IPv6MulticastOption mr) { var optionValue = new IPv6MulticastRequest() { MulticastAddress = mr.Group.GetAddressBytes(), InterfaceIndex = (int)mr.InterfaceIndex }; if (UnsafeMethods.setsockopt(Handle, SocketOptionLevel.IPv6, optionName, ref optionValue, IPv6MulticastRequest.Size) == SocketError.SocketError) { throw new SocketException(); } }
private void SetMulticastOption(SocketOptionName optionName, MulticastOption mr) { IPMulticastRequest mreq = new IPMulticastRequest(); mreq.MulticastAddress = GetIP4Address(mr.Group); if (mr.LocalAddress != null) { mreq.InterfaceAddress = GetIP4Address(mr.LocalAddress); } else { int num = IPAddress.HostToNetworkOrder(mr.InterfaceIndex); mreq.InterfaceAddress = num; } if (UnsafeMethods.setsockopt(Handle, SocketOptionLevel.IPv6, optionName, ref mreq, IPv6MulticastRequest.Size) == SocketError.SocketError) { throw new SocketException(); } }