本文整理汇总了C#中SocketOptionLevel类的典型用法代码示例。如果您正苦于以下问题:C# SocketOptionLevel类的具体用法?C# SocketOptionLevel怎么用?C# SocketOptionLevel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SocketOptionLevel类属于命名空间,在下文中一共展示了SocketOptionLevel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SetSocketOption
protected static int SetSocketOption(Socket socket, SocketOptionLevel level, SocketOptionName name, int value)
{
if (((int)socket.GetSocketOption(level, name)) == value)
return value;
socket.SetSocketOption(level, name, value);
return (int)socket.GetSocketOption(level, name);
}
示例2: SetSocketOption
protected void SetSocketOption(SocketOptionLevel level, SocketOptionName name, int option)
{
try
{
m_sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.NoDelay, option);
}
catch { }
}
示例3: SetSocketOption
protected static bool SetSocketOption(Socket socket, SocketOptionLevel level, SocketOptionName name, bool value) {
if (((int)socket.GetSocketOption(level, name)) == (value ? 1 : 0))
return value;
socket.SetSocketOption(level, name, value);
if (((int)socket.GetSocketOption(level, name)) != 1) {
return false;
}
return true;
}
示例4: SetSocketOption
protected void SetSocketOption(SocketOptionLevel level, SocketOptionName name, int val)
{
try
{
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.NoDelay, val);
}
catch
{
}
}
示例5: SetSockOpt
internal static unsafe Error SetSockOpt(SafeHandle socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte* optionValue, int optionLen)
{
bool release = false;
try
{
socket.DangerousAddRef(ref release);
return DangerousSetSockOpt((int)socket.DangerousGetHandle(), optionLevel, optionName, optionValue, optionLen);
}
finally
{
if (release)
{
socket.DangerousRelease();
}
}
}
示例6: SetSocketOption
public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, bool optionValue)
{
if (optionName == SocketOptionName.ReuseAddress)
{
if (this.InternalServerSocket != null)
{
try
{
//Console.WriteLine("setReuseAddress... " + new { optionValue });
this.InternalServerSocket.setReuseAddress(optionValue);
}
catch
{
throw;
}
}
}
}
示例7: MulticastPolicyServerCore
public MulticastPolicyServerCore(AddressFamily addressFamily, MulticastPolicyConfiguration configuration)
{
Debug.Assert(configuration != null, "Configuration should not be null");
this.addressFamily = addressFamily;
this.configuration = configuration;
if (addressFamily == AddressFamily.InterNetwork)
{
this.localEndPoint = new IPEndPoint(IPAddress.Any, MulticastPolicyPort);
this.socketOptionLevel = SocketOptionLevel.IP;
}
else
{
this.localEndPoint = new IPEndPoint(IPAddress.IPv6Any, MulticastPolicyPort);
this.socketOptionLevel = SocketOptionLevel.IPv6;
}
SetMulticastSocketFactory(new RealMulticastSocketFactory());
}
示例8: SetSocketOption
internal unsafe void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue, bool silent)
{
GlobalLog.Print("Socket#" + Logging.HashString(this) + "::SetSocketOption() optionLevel:" + optionLevel + " optionName:" + optionName + " optionValue:" + optionValue + " silent:" + silent);
if (silent && (CleanedUp || _handle.IsInvalid))
{
GlobalLog.Print("Socket#" + Logging.HashString(this) + "::SetSocketOption() skipping the call");
return;
}
SocketError errorCode = SocketError.Success;
try
{
errorCode = SocketPal.SetSockOpt(_handle, optionLevel, optionName, optionValue);
GlobalLog.Print("Socket#" + Logging.HashString(this) + "::SetSocketOption() Interop.Winsock.setsockopt returns errorCode:" + errorCode);
}
catch
{
if (silent && _handle.IsInvalid)
{
return;
}
throw;
}
// Keep the internal state in sync if the user manually resets this.
if (optionName == SocketOptionName.PacketInformation && optionValue == 0 &&
errorCode == SocketError.Success)
{
_receivingPacketInformation = false;
}
if (silent)
{
return;
}
// Throw an appropriate SocketException if the native call fails.
if (errorCode != SocketError.Success)
{
// Update the internal state of this socket according to the error before throwing.
SocketException socketException = new SocketException((int)errorCode);
UpdateStatusAfterSocketError(socketException);
if (s_loggingEnabled)
{
Logging.Exception(Logging.Sockets, this, "SetSocketOption", socketException);
}
throw socketException;
}
}
示例9: SetSocketOption_internal
extern static void SetSocketOption_internal (IntPtr socket, SocketOptionLevel level, SocketOptionName name, object obj_val, byte [] byte_val, int int_val, out int error);
示例10: SetSocketOption
public void SetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName, byte [] optionValue)
{
if (disposed && closed)
throw new ObjectDisposedException (GetType ().ToString ());
// I'd throw an ArgumentNullException, but this is what MS does.
if (optionValue == null)
throw new SocketException ((int) SocketError.Fault,
"Error trying to dereference an invalid pointer");
int error;
SetSocketOption_internal (socket, optionLevel, optionName, null,
optionValue, 0, out error);
if (error != 0) {
if (error == (int) SocketError.InvalidArgument)
throw new ArgumentException ();
throw new SocketException (error);
}
}
示例11: SetSocketOption
public void SetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName, object optionValue)
{
ThrowIfDisposedAndClosed ();
// NOTE: if a null is passed, the byte[] overload is used instead...
if (optionValue == null)
throw new ArgumentNullException("optionValue");
int error;
if (optionLevel == SocketOptionLevel.Socket && optionName == SocketOptionName.Linger) {
LingerOption linger = optionValue as LingerOption;
if (linger == null)
throw new ArgumentException ("A 'LingerOption' value must be specified.", "optionValue");
SetSocketOption_internal (safe_handle, optionLevel, optionName, linger, null, 0, out error);
} else if (optionLevel == SocketOptionLevel.IP && (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)) {
MulticastOption multicast = optionValue as MulticastOption;
if (multicast == null)
throw new ArgumentException ("A 'MulticastOption' value must be specified.", "optionValue");
SetSocketOption_internal (safe_handle, optionLevel, optionName, multicast, null, 0, out error);
} else if (optionLevel == SocketOptionLevel.IPv6 && (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)) {
IPv6MulticastOption multicast = optionValue as IPv6MulticastOption;
if (multicast == null)
throw new ArgumentException ("A 'IPv6MulticastOption' value must be specified.", "optionValue");
SetSocketOption_internal (safe_handle, optionLevel, optionName, multicast, null, 0, out error);
} else {
throw new ArgumentException ("Invalid value specified.", "optionValue");
}
if (error != 0) {
if (error == (int) SocketError.InvalidArgument)
throw new ArgumentException ();
throw new SocketException (error);
}
}
示例12: GetSocketOption_obj_internal
extern static void GetSocketOption_obj_internal(IntPtr socket, SocketOptionLevel level, SocketOptionName name, out object obj_val, out int error);
示例13: GetSocketOption
public object GetSocketOption (SocketOptionLevel optionLevel, SocketOptionName optionName)
{
ThrowIfDisposedAndClosed ();
int error;
object obj_val;
GetSocketOption_obj_internal (safe_handle, optionLevel, optionName, out obj_val, out error);
if (error != 0)
throw new SocketException (error);
if (optionName == SocketOptionName.Linger)
return (LingerOption) obj_val;
else if (optionName == SocketOptionName.AddMembership || optionName == SocketOptionName.DropMembership)
return (MulticastOption) obj_val;
else if (obj_val is int)
return (int) obj_val;
else
return obj_val;
}
示例14: numericOption
private int numericOption(SocketOptionLevel optionLevel, SocketOptionName optionName) {
return (int)Client.GetSocketOption(optionLevel, optionName);
}
示例15: GetSocketOption_arr_internal
extern static void GetSocketOption_arr_internal(IntPtr socket, SocketOptionLevel level, SocketOptionName name, ref byte[] byte_val, out int error);