Net.Sockets
#region 程序集 System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll
#endregion using System.Collections;
using System.Collections.Generic;
using System.Runtime; namespace System.Net.Sockets
{
//
// 摘要:
// 实现 Berkeley 套接字接口。
public class Socket : IDisposable
{
//
// 摘要:
// 使用 System.Net.Sockets.Socket.DuplicateAndClose(System.Int32) 返回的指定的值初始化 System.Net.Sockets.Socket
// 类的新实例。
//
// 参数:
// socketInformation:
// System.Net.Sockets.Socket.DuplicateAndClose(System.Int32) 返回的套接字信息。
public Socket(SocketInformation socketInformation);
//
// 摘要:
// 使用指定的地址族、套接字类型和协议初始化 System.Net.Sockets.Socket 类的新实例。
//
// 参数:
// addressFamily:
// System.Net.Sockets.AddressFamily 值之一。
//
// socketType:
// System.Net.Sockets.SocketType 值之一。
//
// protocolType:
// System.Net.Sockets.ProtocolType 值之一。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// addressFamily、socketType 和 protocolType 的组合会导致无效套接字。
public Socket(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType); //
// 摘要:
// System.Net.Sockets.Socket 类使用的可用资源。
~Socket(); //
// 摘要:
// 指示基础操作系统和网络适配器是否支持 Internet 协议第 4 版 (IPv4)。
//
// 返回结果:
// 如果操作系统和网络适配器支持 IPv4 协议,则为 true;否则为 false。
public static bool OSSupportsIPv4 { get; }
//
// 摘要:
// 指示基础操作系统和网络适配器是否支持 Internet 协议第 6 版 (IPv6)。
//
// 返回结果:
// 如果操作系统和网络适配器支持 IPv6 协议,则为 true;否则为 false。
public static bool OSSupportsIPv6 { get; }
//
// 摘要:
// 获取一个值,该值指示在当前主机上 IPv4 支持是否可用并且已启用。
//
// 返回结果:
// 如果当前主机支持 IPv4 协议,则为 true;否则为 false。
[Obsolete("SupportsIPv4 is obsoleted for this type, please use OSSupportsIPv4 instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static bool SupportsIPv4 { get; }
//
// 摘要:
// 获取一个值,该值指示 Framework 对某些已过时的 System.Net.Dns 成员是否支持 IPv6。
//
// 返回结果:
// 如果 Framework 对某些已过时的 System.Net.Dns 方法支持 IPv6,则为 true;否则为 false。
[Obsolete("SupportsIPv6 is obsoleted for this type, please use OSSupportsIPv6 instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static bool SupportsIPv6 { get; }
//
// 摘要:
// 获取 System.Net.Sockets.Socket 的地址族。
//
// 返回结果:
// System.Net.Sockets.AddressFamily 值之一。
public AddressFamily AddressFamily { get; }
//
// 摘要:
// 获取已经从网络接收且可供读取的数据量。
//
// 返回结果:
// 从网络接收的、可供读取的数据的字节数。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Available { get; }
//
// 摘要:
// 获取或设置一个值,该值指示 System.Net.Sockets.Socket 是否处于阻止模式。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 将阻止,则为 true;否则为 false。默认值为 true。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool Blocking { get; set; }
//
// 摘要:
// 获取一个值,该值指示 System.Net.Sockets.Socket 是在上次 Overload:System.Net.Sockets.Socket.Send
// 还是 Overload:System.Net.Sockets.Socket.Receive 操作时连接到远程主机。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 在最近操作时连接到远程资源,则为 true;否则为 false。
public bool Connected { get; }
//
// 摘要:
// 获取或设置 System.Boolean 值,该值指定 System.Net.Sockets.Socket 是否允许将 Internet 协议 (IP)
// 数据报分段。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 允许数据报分段,则为 true;否则为 false。默认值为 true。
//
// 异常:
// T:System.NotSupportedException:
// 只有对于在 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 族中的套接字,才可以设置此属性。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool DontFragment { get; set; }
//
// 摘要:
// 获取或设置一个 System.Boolean 值,该值指定 System.Net.Sockets.Socket 是否可以发送或接收广播数据包。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 允许广播数据包,则为 true;否则为 false。默认值为 false。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 此选项仅对数据报套接字有效。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool EnableBroadcast { get; set; }
//
// 摘要:
// 获取或设置 System.Boolean 值,该值指定 System.Net.Sockets.Socket 是否仅允许一个进程绑定到端口。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 仅允许一个套接字绑定到特定端口,则为 true;否则为 false。对于 Windows Server
// 2003 和 Windows XP Service Pack 2,默认值为 true,对于其他所有版本,默认值为 false。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.InvalidOperationException:
// 已为此 System.Net.Sockets.Socket 调用了 System.Net.Sockets.Socket.Bind(System.Net.EndPoint)。
public bool ExclusiveAddressUse { get; set; }
//
// 摘要:
// 获取 System.Net.Sockets.Socket 的操作系统句柄。
//
// 返回结果:
// 一个 System.IntPtr,它表示 System.Net.Sockets.Socket 的操作系统句柄。
public IntPtr Handle { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Net.Sockets.Socket 是否绑定到特定本地端口。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 绑定到本地端口,则为 true;否则为 false。
public bool IsBound { get; }
//
// 摘要:
// 获取或设置一个值,该值指定 System.Net.Sockets.Socket 在尝试发送所有挂起数据时是否延迟关闭套接字。
//
// 返回结果:
// 一个 System.Net.Sockets.LingerOption,它指定关闭套接字时如何逗留。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public LingerOption LingerState { get; set; }
//
// 摘要:
// 获取本地终结点。
//
// 返回结果:
// System.Net.Sockets.Socket 当前用以进行通信的 System.Net.EndPoint。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public EndPoint LocalEndPoint { get; }
//
// 摘要:
// 获取或设置一个值,该值指定传出的多路广播数据包是否传递到发送应用程序。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 接收传出的多路广播数据包,则为 true;否则为 false。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool MulticastLoopback { get; set; }
//
// 摘要:
// 获取或设置 System.Boolean 值,该值指定流 System.Net.Sockets.Socket 是否正在使用 Nagle 算法。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 使用 Nagle 算法,则为 false;否则为 true。默认值为 false。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问 System.Net.Sockets.Socket 时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool NoDelay { get; set; }
//
// 摘要:
// 获取 System.Net.Sockets.Socket 的协议类型。
//
// 返回结果:
// System.Net.Sockets.ProtocolType 值之一。
public ProtocolType ProtocolType { get; }
//
// 摘要:
// 获取或设置一个值,它指定 System.Net.Sockets.Socket 接收缓冲区的大小。
//
// 返回结果:
// System.Int32,它包含接收缓冲区的大小(以字节为单位)。默认值为 8192。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.ArgumentOutOfRangeException:
// 为设置操作指定的值小于 0。
public int ReceiveBufferSize { get; set; }
//
// 摘要:
// 获取或设置一个值,该值指定之后同步 Overload:System.Net.Sockets.Socket.Receive 调用将超时的时间长度。
//
// 返回结果:
// 超时值(以毫秒为单位)。默认值为 0,指示超时期限无限大。指定 -1 还会指示超时期限无限大。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.ArgumentOutOfRangeException:
// 为设置操作指定的值小于 -1。
public int ReceiveTimeout { get; set; }
//
// 摘要:
// 获取远程终结点。
//
// 返回结果:
// 当前和 System.Net.Sockets.Socket 通信的 System.Net.EndPoint。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public EndPoint RemoteEndPoint { get; }
//
// 摘要:
// 获取或设置一个值,该值指定 System.Net.Sockets.Socket 发送缓冲区的大小。
//
// 返回结果:
// System.Int32,它包含发送缓冲区的大小(以字节为单位)。默认值为 8192。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.ArgumentOutOfRangeException:
// 为设置操作指定的值小于 0。
public int SendBufferSize { get; set; }
//
// 摘要:
// 获取或设置一个值,该值指定之后同步 Overload:System.Net.Sockets.Socket.Send 调用将超时的时间长度。
//
// 返回结果:
// 超时值(以毫秒为单位)。如果将该属性设置为 1 到 499 之间的值,该值将被更改为 500。默认值为 0,指示超时期限无限大。指定 -1 还会指示超时期限无限大。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.ArgumentOutOfRangeException:
// 为设置操作指定的值小于 -1。
public int SendTimeout { get; set; }
//
// 摘要:
// 获取 System.Net.Sockets.Socket 的类型。
//
// 返回结果:
// System.Net.Sockets.SocketType 值之一。
public SocketType SocketType { get; }
//
// 摘要:
// 获取或设置一个值,指定 System.Net.Sockets.Socket 发送的 Internet 协议 (IP) 数据包的生存时间 (TTL) 值。
//
// 返回结果:
// TTL 值。
//
// 异常:
// T:System.ArgumentOutOfRangeException:
// TTL 值不能设置为负数。
//
// T:System.NotSupportedException:
// 只有对于在 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 族中的套接字,才可以设置此属性。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。在尝试将 TTL 设置为大于 255 的值时,也将返回此错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public short Ttl { get; set; }
//
// 摘要:
// 指定套接字是否应仅使用重叠 I/O 模式。
//
// 返回结果:
// 如果 System.Net.Sockets.Socket 仅使用重叠 I/O,则为 true;否则为 false。默认值为 false。
//
// 异常:
// T:System.InvalidOperationException:
// 套接字已绑定到完成端口。
public bool UseOnlyOverlappedIO { get; set; } //
// 摘要:
// 取消一个对远程主机连接的异步请求。
//
// 参数:
// e:
// System.Net.Sockets.SocketAsyncEventArgs 对象,该对象用于通过调用 System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs)
// 方法之一,请求与远程主机的连接。
//
// 异常:
// T:System.ArgumentNullException:
// e 参数不能为 null,并且 System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint 不能为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
public static void CancelConnectAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 开始一个对远程主机连接的异步请求。
//
// 参数:
// socketType:
// System.Net.Sockets.SocketType 值之一。
//
// protocolType:
// System.Net.Sockets.ProtocolType 值之一。
//
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentException:
// 参数无效。如果指定了多个缓冲区,即 System.Net.Sockets.SocketAsyncEventArgs.BufferList 属性不为 null,将会发生此异常。
//
// T:System.ArgumentNullException:
// e 参数不能为 null,并且 System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint 不能为空。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 正在侦听或已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs
// 对象执行套接字操作。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。如果本地终结点和 System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint
// 不是相同的地址族,也会发生此异常。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
public static bool ConnectAsync(SocketType socketType, ProtocolType protocolType, SocketAsyncEventArgs e);
//
// 摘要:
// 确定一个或多个套接字的状态。
//
// 参数:
// checkRead:
// 要检查可读性的 System.Net.Sockets.Socket 实例的 System.Collections.IList。
//
// checkWrite:
// 一个 System.Net.Sockets.Socket 实例的 System.Collections.IList,用于检查可写性。
//
// checkError:
// 要检查错误的 System.Net.Sockets.Socket 实例的 System.Collections.IList。
//
// microSeconds:
// 超时值(以毫秒为单位)。A -1 值指示超时值为无限大。
//
// 异常:
// T:System.ArgumentNullException:
// checkRead 参数为 null 或为空。-和-checkWrite 参数为 null 或空。-和-checkError 参数为 null 或为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public static void Select(IList checkRead, IList checkWrite, IList checkError, int microSeconds);
//
// 摘要:
// 为新建连接创建新的 System.Net.Sockets.Socket。
//
// 返回结果:
// 新建连接的 System.Net.Sockets.Socket。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.InvalidOperationException:
// 正在接受的套接字不会侦听连接。在调用 System.Net.Sockets.Socket.Accept 之前必须调用 System.Net.Sockets.Socket.Bind(System.Net.EndPoint)
// 和 System.Net.Sockets.Socket.Listen(System.Int32)。
public Socket Accept();
//
// 摘要:
// 开始一个异步操作来接受一个传入的连接尝试。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentException:
// 参数无效。如果所提供的缓冲区不够大,将会发生此异常。缓冲区必须至少为 2 * (sizeof(SOCKADDR_STORAGE + 16) 字节。如果指定了多个缓冲区,即
// System.Net.Sockets.SocketAsyncEventArgs.BufferList 属性不为 null,也会发生此异常。
//
// T:System.ArgumentOutOfRangeException:
// 参数超出范围。如果 System.Net.Sockets.SocketAsyncEventArgs.Count 小于 0,将会发生此异常。
//
// T:System.InvalidOperationException:
// 请求了无效操作。如果接收方 System.Net.Sockets.Socket 未侦听连接或者绑定了接受的套接字,将发生此异常。System.Net.Sockets.Socket.Bind(System.Net.EndPoint)
// 和 System.Net.Sockets.Socket.Listen(System.Int32) 方法必须先于 System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs)
// 方法调用。如果套接字已连接或使用指定的 e 参数的套接字操作已经在进行中,也会发生此异常。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool AcceptAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 开始一个异步操作来接受一个传入的连接尝试。
//
// 参数:
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个 System.IAsyncResult,它引用异步 System.Net.Sockets.Socket 创建。
//
// 异常:
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
//
// T:System.InvalidOperationException:
// 正在接受的套接字不会侦听连接。在调用 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
// 之前必须调用 System.Net.Sockets.Socket.Bind(System.Net.EndPoint) 和 System.Net.Sockets.Socket.Listen(System.Int32)。-
// 或 -已接受的套接字是绑定的。
//
// T:System.ArgumentOutOfRangeException:
// receiveSize 小于 0。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public IAsyncResult BeginAccept(AsyncCallback callback, object state);
//
// 摘要:
// 开始异步操作以接受传入的连接尝试并接收客户端应用程序发送的第一个数据块。
//
// 参数:
// receiveSize:
// 要从发送方读取的字节数。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个 System.IAsyncResult,它引用异步 System.Net.Sockets.Socket 创建。
//
// 异常:
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
//
// T:System.InvalidOperationException:
// 正在接受的套接字不会侦听连接。在调用 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
// 之前必须调用 System.Net.Sockets.Socket.Bind(System.Net.EndPoint) 和 System.Net.Sockets.Socket.Listen(System.Int32)。-
// 或 -已接受的套接字是绑定的。
//
// T:System.ArgumentOutOfRangeException:
// receiveSize 小于 0。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public IAsyncResult BeginAccept(int receiveSize, AsyncCallback callback, object state);
//
// 摘要:
// 开始异步操作以接受从指定套接字传入的连接尝试并接收客户端应用程序发送的第一个数据块。
//
// 参数:
// acceptSocket:
// 接受的 System.Net.Sockets.Socket 对象。此值可以是 null。
//
// receiveSize:
// 要接收的最大字节数。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个 System.IAsyncResult 对象,它引用异步 System.Net.Sockets.Socket 对象创建。
//
// 异常:
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
//
// T:System.InvalidOperationException:
// 正在接受的套接字不会侦听连接。在调用 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
// 之前必须调用 System.Net.Sockets.Socket.Bind(System.Net.EndPoint) 和 System.Net.Sockets.Socket.Listen(System.Int32)。-
// 或 -已接受的套接字是绑定的。
//
// T:System.ArgumentOutOfRangeException:
// receiveSize 小于 0。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public IAsyncResult BeginAccept(Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
//
// 摘要:
// 开始一个对远程主机连接的异步请求。
//
// 参数:
// remoteEP:
// System.Net.EndPoint,它表示远程主机。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// System.IAsyncResult,它引用异步连接。
//
// 异常:
// T:System.ArgumentNullException:
// remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public IAsyncResult BeginConnect(EndPoint remoteEP, AsyncCallback callback, object state);
//
// 摘要:
// 开始一个对远程主机连接的异步请求。主机由 System.Net.IPAddress 数组和端口号指定。
//
// 参数:
// addresses:
// 至少一个 System.Net.IPAddress,指定远程主机。
//
// port:
// 远程主机的端口号。
//
// requestCallback:
// 一个 System.AsyncCallback 委托,它引用连接操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含连接操作的相关信息。操作完成时,此对象传递给了 requestCallback 委托。
//
// 返回结果:
// System.IAsyncResult,它引用异步连接。
//
// 异常:
// T:System.ArgumentNullException:
// addresses 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 的套接字有效。
//
// T:System.ArgumentOutOfRangeException:
// 此端口号无效。
//
// T:System.ArgumentException:
// address 的长度为零。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public IAsyncResult BeginConnect(IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
//
// 摘要:
// 开始一个对远程主机连接的异步请求。主机由 System.Net.IPAddress 和端口号指定。
//
// 参数:
// address:
// 远程主机的 System.Net.IPAddress。
//
// port:
// 远程主机的端口号。
//
// requestCallback:
// 一个 System.AsyncCallback 委托,它引用连接操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含连接操作的相关信息。操作完成时,此对象传递给了 requestCallback 委托。
//
// 返回结果:
// System.IAsyncResult,它引用异步连接。
//
// 异常:
// T:System.ArgumentNullException:
// address 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// System.Net.Sockets.Socket 不在套接字族中。
//
// T:System.ArgumentOutOfRangeException:
// 此端口号无效。
//
// T:System.ArgumentException:
// address 的长度为零。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public IAsyncResult BeginConnect(IPAddress address, int port, AsyncCallback requestCallback, object state);
//
// 摘要:
// 开始一个对远程主机连接的异步请求。主机由主机名和端口号指定。
//
// 参数:
// host:
// 远程主机的名称。
//
// port:
// 远程主机的端口号。
//
// requestCallback:
// 一个 System.AsyncCallback 委托,它引用连接操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含连接操作的相关信息。操作完成时,此对象传递给了 requestCallback 委托。
//
// 返回结果:
// System.IAsyncResult,它引用异步连接。
//
// 异常:
// T:System.ArgumentNullException:
// host 为 null。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 系列中的套接字有效。
//
// T:System.ArgumentOutOfRangeException:
// 此端口号无效。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public IAsyncResult BeginConnect(string host, int port, AsyncCallback requestCallback, object state);
//
// 摘要:
// 开始异步请求从远程终结点断开连接。
//
// 参数:
// reuseSocket:
// 如果关闭该连接后可以重用此套接字,则为 true;否则为 false。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个 System.IAsyncResult 对象,它引用异步操作。
//
// 异常:
// T:System.NotSupportedException:
// 操作系统为 Windows 2000 或更低版本,而此方法需要在 Windows XP 中使用。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public IAsyncResult BeginDisconnect(bool reuseSocket, AsyncCallback callback, object state);
//
// 摘要:
// 开始从连接的 System.Net.Sockets.Socket 中异步接收数据。
//
// 参数:
// buffers:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// callback:
// 一个 System.AsyncCallback 委托,它引用操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含接收操作的相关信息。操作完成时,此对象传递给了 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)
// 委托。
//
// 返回结果:
// 一个引用异步读取的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public IAsyncResult BeginReceive(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, AsyncCallback callback, object state);
//
// 摘要:
// 开始从连接的 System.Net.Sockets.Socket 中异步接收数据。
//
// 参数:
// buffers:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// callback:
// 一个 System.AsyncCallback 委托,它引用操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含接收操作的相关信息。操作完成时,此对象传递给了 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)
// 委托。
//
// 返回结果:
// 一个引用异步读取的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public IAsyncResult BeginReceive(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback callback, object state);
//
// 摘要:
// 开始从连接的 System.Net.Sockets.Socket 中异步接收数据。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 参数中存储所接收数据的位置,该位置从零开始计数。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// callback:
// 一个 System.AsyncCallback 委托,它引用操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含接收操作的相关信息。操作完成时,此对象传递给了 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)
// 委托。
//
// 返回结果:
// 一个引用异步读取的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
public IAsyncResult BeginReceive(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback callback, object state);
//
// 摘要:
// 开始从连接的 System.Net.Sockets.Socket 中异步接收数据。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 中存储所接收数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// callback:
// 一个 System.AsyncCallback 委托,它引用操作完成时要调用的方法。
//
// state:
// 一个用户定义对象,其中包含接收操作的相关信息。操作完成时,此对象传递给了 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)
// 委托。
//
// 返回结果:
// 一个引用异步读取的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
public IAsyncResult BeginReceive(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback callback, object state);
//
// 摘要:
// 开始从指定网络设备中异步接收数据。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 参数中存储数据的位置,该位置从零开始计数。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// 一个 System.Net.EndPoint,它表示数据的来源。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个引用异步读取的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
public IAsyncResult BeginReceiveFrom(byte[] buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP, AsyncCallback callback, object state);
//
// 摘要:
// 开始使用指定的 System.Net.Sockets.SocketFlags 将指定字节数的数据异步接收到数据缓冲区的指定位置,然后存储终结点和数据包信息。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 参数中存储数据的位置,该位置从零开始计数。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// 一个 System.Net.EndPoint,它表示数据的来源。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个引用异步读取的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 操作系统为 Windows 2000 或更低版本,而此方法需要在 Windows XP 中使用。
public IAsyncResult BeginReceiveMessageFrom(byte[] buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP, AsyncCallback callback, object state);
//
// 摘要:
// 将数据异步发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffers:
// System.Byte 类型的数组,它包含要发送的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 引用异步发送的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。
//
// T:System.ArgumentException:
// buffers 为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public IAsyncResult BeginSend(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, AsyncCallback callback, object state);
//
// 摘要:
// 将数据异步发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffers:
// System.Byte 类型的数组,它包含要发送的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 引用异步发送的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。
//
// T:System.ArgumentException:
// buffers 为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public IAsyncResult BeginSend(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback callback, object state);
//
// 摘要:
// 将数据异步发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// offset:
// buffer 参数中开始发送数据的位置,该位置从零开始计数。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 引用异步发送的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 小于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, AsyncCallback callback, object state);
//
// 摘要:
// 将数据异步发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// offset:
// buffer 参数中开始发送数据的位置,该位置从零开始计数。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 引用异步发送的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 小于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode, AsyncCallback callback, object state);
//
// 摘要:
// 使用 System.Net.Sockets.TransmitFileOptions.UseDefaultWorkerThread 标志,将文件 fileName
// 发送到连接的 System.Net.Sockets.Socket 对象。
//
// 参数:
// fileName:
// 一个字符串,它包含要发送的文件的路径和名称。此参数可以为 null。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 一个 System.IAsyncResult 对象,它表示异步发送。
//
// 异常:
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.NotSupportedException:
// 套接字未连接到远程主机。
//
// T:System.IO.FileNotFoundException:
// 未找到文件 fileName。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
public IAsyncResult BeginSendFile(string fileName, AsyncCallback callback, object state);
//
// 摘要:
// 将文件和数据缓冲区异步发送到连接的 System.Net.Sockets.Socket 对象。
//
// 参数:
// fileName:
// 一个字符串,它包含要发送的文件的路径和名称。此参数可以为 null。
//
// preBuffer:
// 一个 System.Byte 数组,包含发送文件前要发送的数据。此参数可以为 null。
//
// postBuffer:
// 一个 System.Byte 数组,包含发送文件后要发送的数据。此参数可以为 null。
//
// flags:
// System.Net.Sockets.TransmitFileOptions 值的按位组合。
//
// callback:
// 一个 System.AsyncCallback 委托,将在此操作完成时调用它。此参数可以为 null。
//
// state:
// 一个用户定义的对象,它包含此请求的状态信息。此参数可以为 null。
//
// 返回结果:
// 一个 System.IAsyncResult 对象,它表示异步操作。
//
// 异常:
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
//
// T:System.NotSupportedException:
// 操作系统不是 Windows NT 或更高版本。- 或 -套接字未连接到远程主机。
//
// T:System.IO.FileNotFoundException:
// 未找到文件 fileName。
public IAsyncResult BeginSendFile(string fileName, byte[] preBuffer, byte[] postBuffer, TransmitFileOptions flags, AsyncCallback callback, object state);
//
// 摘要:
// 向特定远程主机异步发送数据。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// offset:
// buffer 中的从其开始发送数据的、从零开始编排的位置。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// System.Net.EndPoint,表示远程设备。
//
// callback:
// System.AsyncCallback 委托。
//
// state:
// 一个对象,它包含此请求的状态信息。
//
// 返回结果:
// 引用异步发送的 System.IAsyncResult。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
public IAsyncResult BeginSendTo(byte[] buffer, int offset, int size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, object state);
//
// 摘要:
// 使 System.Net.Sockets.Socket 与一个本地终结点相关联。
//
// 参数:
// localEP:
// 要与 System.Net.Sockets.Socket 关联的本地 System.Net.EndPoint。
//
// 异常:
// T:System.ArgumentNullException:
// localEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
public void Bind(EndPoint localEP);
//
// 摘要:
// 关闭 System.Net.Sockets.Socket 连接并释放所有关联的资源。
public void Close();
//
// 摘要:
// 关闭 System.Net.Sockets.Socket 连接并释放所有关联的资源。
//
// 参数:
// timeout:
// 等待 timeout 秒以发送所有剩余数据,然后关闭该套接字。
public void Close(int timeout);
//
// 摘要:
// 建立与远程主机的连接。
//
// 参数:
// remoteEP:
// System.Net.EndPoint,表示远程设备。
//
// 异常:
// T:System.ArgumentNullException:
// remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public void Connect(EndPoint remoteEP);
//
// 摘要:
// 建立与远程主机的连接。主机由 IP 地址的数组和端口号指定。
//
// 参数:
// addresses:
// 远程主机的 IP 地址。
//
// port:
// 远程主机的端口号。
//
// 异常:
// T:System.ArgumentNullException:
// addresses 为 null。
//
// T:System.ArgumentOutOfRangeException:
// 此端口号无效。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 系列中的套接字有效。
//
// T:System.ArgumentException:
// address 的长度为零。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public void Connect(IPAddress[] addresses, int port);
//
// 摘要:
// 建立与远程主机的连接。主机由 IP 地址和端口号指定。
//
// 参数:
// address:
// 远程主机的 IP 地址。
//
// port:
// 远程主机的端口号。
//
// 异常:
// T:System.ArgumentNullException:
// address 为 null。
//
// T:System.ArgumentOutOfRangeException:
// 此端口号无效。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 系列中的套接字有效。
//
// T:System.ArgumentException:
// address 的长度为零。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public void Connect(IPAddress address, int port);
//
// 摘要:
// 建立与远程主机的连接。主机由主机名和端口号指定。
//
// 参数:
// host:
// 远程主机的名称。
//
// port:
// 远程主机的端口号。
//
// 异常:
// T:System.ArgumentNullException:
// host 为 null。
//
// T:System.ArgumentOutOfRangeException:
// 此端口号无效。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
// 系列中的套接字有效。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
public void Connect(string host, int port);
//
// 摘要:
// 开始一个对远程主机连接的异步请求。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentException:
// 参数无效。如果指定了多个缓冲区,即 System.Net.Sockets.SocketAsyncEventArgs.BufferList 属性不为 null,将会发生此异常。
//
// T:System.ArgumentNullException:
// e 参数不能为 null,并且 System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint 不能为空。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 正在侦听或已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs
// 对象执行套接字操作。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。如果本地终结点和 System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint
// 不是相同的地址族,也会发生此异常。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈上部的调用方无权执行所请求的操作。
public bool ConnectAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 关闭套接字连接并允许重用套接字。
//
// 参数:
// reuseSocket:
// 如果关闭当前连接后可以重用此套接字,则为 true;否则为 false。
//
// 异常:
// T:System.PlatformNotSupportedException:
// 此方法需要 Windows 2000 或更低版本,否则将引发异常。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public void Disconnect(bool reuseSocket);
//
// 摘要:
// 开始异步请求从远程终结点断开连接。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentNullException:
// e 参数不能为 null。
//
// T:System.InvalidOperationException:
// 已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs 对象执行套接字操作。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
public bool DisconnectAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 释放由 System.Net.Sockets.Socket 类的当前实例占用的所有资源。
public void Dispose();
//
// 摘要:
// 重复目标进程的套接字引用,并关闭此进程的套接字。
//
// 参数:
// targetProcessId:
// 从中创建重复套接字引用的目标进程的 ID。
//
// 返回结果:
// 要传递到目标进程的套接字引用。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// targetProcessID 不是有效的进程 ID。- 或 -套接字引用的复制失败。
public SocketInformation DuplicateAndClose(int targetProcessId);
//
// 摘要:
// 异步接受传入的连接尝试,并创建新的 System.Net.Sockets.Socket 来处理远程主机通信。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及任何用户定义数据。
//
// 返回结果:
// 一个 System.Net.Sockets.Socket,它处理与远程主机的通信。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// asyncResult 并不是通过对 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
// 的调用创建的。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket.EndAccept(System.IAsyncResult) 方法以前被调用过。
//
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
public Socket EndAccept(IAsyncResult asyncResult);
//
// 摘要:
// 异步接受传入的连接尝试,并创建新的 System.Net.Sockets.Socket 对象来处理远程主机通信。此方法返回包含所传输的初始数据的缓冲区。
//
// 参数:
// buffer:
// 包含所传输字节的类型 System.Byte 的数组。
//
// asyncResult:
// System.IAsyncResult 对象,它存储此异步操作的状态信息以及任何用户定义数据。
//
// 返回结果:
// 一个 System.Net.Sockets.Socket 对象,它处理与远程主机的通信。
//
// 异常:
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.ArgumentNullException:
// asyncResult 为空。
//
// T:System.ArgumentException:
// asyncResult 并不是通过对 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
// 的调用创建的。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket.EndAccept(System.IAsyncResult) 方法以前被调用过。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问 System.Net.Sockets.Socket 时发生错误。有关更多信息,请参见备注部分。
public Socket EndAccept(out byte[] buffer, IAsyncResult asyncResult);
//
// 摘要:
// 异步接受传入的连接尝试,并创建新的 System.Net.Sockets.Socket 对象来处理远程主机通信。此方法返回一个缓冲区,其中包含初始数据和传输的字节数。
//
// 参数:
// buffer:
// 包含所传输字节的类型 System.Byte 的数组。
//
// bytesTransferred:
// 已传输的字节数。
//
// asyncResult:
// System.IAsyncResult 对象,它存储此异步操作的状态信息以及任何用户定义数据。
//
// 返回结果:
// 一个 System.Net.Sockets.Socket 对象,它处理与远程主机的通信。
//
// 异常:
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.ArgumentNullException:
// asyncResult 为空。
//
// T:System.ArgumentException:
// asyncResult 并不是通过对 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
// 的调用创建的。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket.EndAccept(System.IAsyncResult) 方法以前被调用过。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问 System.Net.Sockets.Socket 时发生错误。有关更多信息,请参见备注部分。
public Socket EndAccept(out byte[] buffer, out int bytesTransferred, IAsyncResult asyncResult);
//
// 摘要:
// 结束挂起的异步连接请求。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步连接调用过 System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void EndConnect(IAsyncResult asyncResult);
//
// 摘要:
// 结束挂起的异步断开连接请求。
//
// 参数:
// asyncResult:
// System.IAsyncResult 对象,它存储此异步操作的状态信息以及所有用户定义数据。
//
// 异常:
// T:System.NotSupportedException:
// 操作系统为 Windows 2000 或更低版本,而此方法需要在 Windows XP 中使用。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginDisconnect(System.Boolean,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步连接调用过 System.Net.Sockets.Socket.EndDisconnect(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.Net.WebException:
// 断开连接请求已超时。
public void EndDisconnect(IAsyncResult asyncResult);
//
// 摘要:
// 结束挂起的异步读取。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndReceive(IAsyncResult asyncResult);
//
// 摘要:
// 结束挂起的异步读取。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndReceive(IAsyncResult asyncResult, out SocketError errorCode);
//
// 摘要:
// 结束挂起的、从特定终结点进行异步读取。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
//
// endPoint:
// 源 System.Net.EndPoint。
//
// 返回结果:
// 如果成功,则返回已接收的字节数。如果不成功,则返回 0。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndReceiveFrom(IAsyncResult asyncResult, ref EndPoint endPoint);
//
// 摘要:
// 结束挂起的、从特定终结点进行异步读取。此方法还显示有关数据包而不是 System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)
// 的更多信息。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
//
// socketFlags:
// 所接收数据包的 System.Net.Sockets.SocketFlags 值的按位组合。
//
// endPoint:
// 源 System.Net.EndPoint。
//
// ipPacketInformation:
// 所接收数据包的 System.Net.IPAddress 和接口。
//
// 返回结果:
// 如果成功,则返回已接收的字节数。如果不成功,则返回 0。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。- 或 -endPoint 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndReceiveMessageFrom(IAsyncResult asyncResult, ref SocketFlags socketFlags, ref EndPoint endPoint, out IPPacketInformation ipPacketInformation);
//
// 摘要:
// 结束挂起的异步发送。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息。
//
// 返回结果:
// 如果成功,则将返回向 System.Net.Sockets.Socket 发送的字节数;否则会返回无效 System.Net.Sockets.Socket
// 错误。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
// 方法调用后未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前为异步发送已调用过 System.Net.Sockets.Socket.EndSend(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndSend(IAsyncResult asyncResult);
//
// 摘要:
// 结束挂起的异步发送。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// 返回结果:
// 如果成功,则将返回向 System.Net.Sockets.Socket 发送的字节数;否则会返回无效 System.Net.Sockets.Socket
// 错误。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
// 方法调用后未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前为异步发送已调用过 System.Net.Sockets.Socket.EndSend(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndSend(IAsyncResult asyncResult, out SocketError errorCode);
//
// 摘要:
// 结束文件的挂起异步发送。
//
// 参数:
// asyncResult:
// System.IAsyncResult 对象,它存储此异步操作的状态信息。
//
// 异常:
// T:System.NotSupportedException:
// 此方法需要 Windows NT。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.ArgumentNullException:
// asyncResult 为空。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginSendFile(System.String,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前曾为异步 System.Net.Sockets.Socket.BeginSendFile(System.String,System.AsyncCallback,System.Object)
// 调用过 System.Net.Sockets.Socket.EndSendFile(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
public void EndSendFile(IAsyncResult asyncResult);
//
// 摘要:
// 结束挂起的、向指定位置进行的异步发送。
//
// 参数:
// asyncResult:
// System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
//
// 返回结果:
// 如果成功,则返回已发送的字节数;否则会返回无效 System.Net.Sockets.Socket 错误。
//
// 异常:
// T:System.ArgumentNullException:
// asyncResult 为 null。
//
// T:System.ArgumentException:
// System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)
// 方法调用未返回 asyncResult。
//
// T:System.InvalidOperationException:
// 先前为异步发送已调用过 System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int EndSendTo(IAsyncResult asyncResult);
//
// 摘要:
// 返回指定的 System.Net.Sockets.Socket 选项的值,表示为一个对象。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// 返回结果:
// 一个对象,表示选项的值。当将 optionName 参数设置为 System.Net.Sockets.SocketOptionName.Linger 时,返回值为
// System.Net.Sockets.LingerOption 类的一个实例。当将 optionName 设置为 System.Net.Sockets.SocketOptionName.AddMembership
// 或 System.Net.Sockets.SocketOptionName.DropMembership 时,返回值为 System.Net.Sockets.MulticastOption
// 类的一个实例。当 optionName 为其他任何值时,返回值为整数。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。- 或 -optionName 设置为不支持的值 System.Net.Sockets.SocketOptionName.MaxConnections。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public object GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName);
//
// 摘要:
// 返回数组中指定的 System.Net.Sockets.Socket 选项的值。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// optionLength:
// 所需返回值的长度(以字节为单位)。
//
// 返回结果:
// System.Byte 类型的数组,它包含套接字选项的值。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。- 或 -在 .NET Compact Framework 应用程序中,Windows CE 默认缓冲区的空间被设置为
// 32768 字节。通过调用 Overload:System.Net.Sockets.Socket.SetSocketOption,可以更改每个套接字缓冲区的空间。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public byte[] GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionLength);
//
// 摘要:
// 返回指定的 System.Net.Sockets.Socket 选项设置,表示为字节数组。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// optionValue:
// System.Byte 类型的数组,用于接收选项设置。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。- 或 -在 .NET Compact Framework 应用程序中,Windows CE 默认缓冲区的空间被设置为
// 32768 字节。通过调用 Overload:System.Net.Sockets.Socket.SetSocketOption,可以更改每个套接字缓冲区的空间。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void GetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue);
//
// 摘要:
// 使用 System.Net.Sockets.IOControlCode 枚举指定控制代码,为 System.Net.Sockets.Socket 设置低级操作模式。
//
// 参数:
// ioControlCode:
// 一个 System.Net.Sockets.IOControlCode 值,它指定要执行的操作的控制代码。
//
// optionInValue:
// System.Byte 类型的数组,包含操作要求的输入数据。
//
// optionOutValue:
// System.Byte 类型的数组,包含由操作返回的输出数据。
//
// 返回结果:
// optionOutValue 参数中的字节数。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.InvalidOperationException:
// 尝试不使用 System.Net.Sockets.Socket.Blocking 属性更改阻止模式。
public int IOControl(IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);
//
// 摘要:
// 使用数字控制代码,为 System.Net.Sockets.Socket 设置低级操作模式。
//
// 参数:
// ioControlCode:
// 一个 System.Int32 值,该值指定要执行的操作的控制代码。
//
// optionInValue:
// 一个 System.Byte 数组,它包含操作需要的输入数据。
//
// optionOutValue:
// 一个 System.Byte 数组,它包含操作返回的输出数据。
//
// 返回结果:
// optionOutValue 参数中的字节数。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.InvalidOperationException:
// 尝试不使用 System.Net.Sockets.Socket.Blocking 属性更改阻止模式。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int IOControl(int ioControlCode, byte[] optionInValue, byte[] optionOutValue);
//
// 摘要:
// 将 System.Net.Sockets.Socket 置于侦听状态。
//
// 参数:
// backlog:
// 挂起连接队列的最大长度。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void Listen(int backlog);
//
// 摘要:
// 确定 System.Net.Sockets.Socket 的状态。
//
// 参数:
// microSeconds:
// 等待响应的时间(以微秒为单位)。
//
// mode:
// System.Net.Sockets.SelectMode 值之一。
//
// 返回结果:
// 基于 mode 参数中传递的轮询模式值的 System.Net.Sockets.Socket 的状态。模式返回值System.Net.Sockets.SelectMode.SelectRead如果已调用
// System.Net.Sockets.Socket.Listen(System.Int32) 并且有挂起的连接,则为 true。- 或 -如果有数据可供读取,则为
// true。- 或 -如果连接已关闭、重置或终止,则返回 true;否则,返回 false。System.Net.Sockets.SelectMode.SelectWrite如果正在处理
// System.Net.Sockets.Socket.Connect(System.Net.EndPoint) 并且连接已成功,则为 true;- 或 -如果可以发送数据,则返回
// true;否则,返回 false。System.Net.Sockets.SelectMode.SelectError如果正在处理不阻止的 System.Net.Sockets.Socket.Connect(System.Net.EndPoint),并且连接已失败,则为
// true;- 或 -如果 System.Net.Sockets.SocketOptionName.OutOfBandInline 未设置,并且带外数据可用,则为
// true;否则,返回 false。
//
// 异常:
// T:System.NotSupportedException:
// mode 参数不是一个 System.Net.Sockets.SelectMode 值。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public bool Poll(int microSeconds, SelectMode mode);
//
// 摘要:
// 从绑定的 System.Net.Sockets.Socket 套接字接收数据,将数据存入接收缓冲区。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int Receive(byte[] buffer);
//
// 摘要:
// 从绑定的 System.Net.Sockets.Socket 接收数据,将数据存入接收缓冲区列表中。
//
// 参数:
// buffers:
// System.Byte 类型的一个 System.ArraySegment`1 列表,包含接收的数据。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 参数为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时出现错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public int Receive(IList<ArraySegment<byte>> buffers);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,从绑定的 System.Net.Sockets.Socket 接收数据,将数据存入接收缓冲区。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int Receive(byte[] buffer, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,从绑定的 System.Net.Sockets.Socket 接收数据,将数据存入接收缓冲区列表中。
//
// 参数:
// buffers:
// System.Byte 类型的一个 System.ArraySegment`1 列表,包含接收的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。- 或 -buffers.Count 是零。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时出现错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Receive(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,从绑定的 System.Net.Sockets.Socket 接收指定字节数的数据,并将数据存入接收缓冲区。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// size 超出了 buffer 的大小。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public int Receive(byte[] buffer, int size, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,从绑定的 System.Net.Sockets.Socket 接收数据,将数据存入接收缓冲区列表中。
//
// 参数:
// buffers:
// System.Byte 类型的一个 System.ArraySegment`1 列表,包含接收的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。- 或 -buffers.Count 是零。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时出现错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Receive(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, out SocketError errorCode);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,从绑定的 System.Net.Sockets.Socket 接收指定的字节数,存入接收缓冲区的指定偏移量位置。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 中存储所接收数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -未设置 System.Net.Sockets.Socket.LocalEndPoint 属性。- 或
// -访问 System.Net.Sockets.Socket 时发生操作系统错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int Receive(byte[] buffer, int offset, int size, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,从绑定的 System.Net.Sockets.Socket 接收数据,将数据存入接收缓冲区。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 参数中存储所接收数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -未设置 System.Net.Sockets.Socket.LocalEndPoint 属性。- 或
// -访问 System.Net.Sockets.Socket 时发生操作系统错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int Receive(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode);
//
// 摘要:
// 开始一个异步请求以便从连接的 System.Net.Sockets.Socket 对象中接收数据。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentException:
// 参数无效。e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Buffer 或 System.Net.Sockets.SocketAsyncEventArgs.BufferList
// 属性必须引用有效的缓冲区。可以设置这两个属性中的某一个,但不能同时设置这两个属性。
//
// T:System.InvalidOperationException:
// 已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs 对象执行套接字操作。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public bool ReceiveAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 将数据报接收到数据缓冲区并存储终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// remoteEP:
// 按引用传递的 System.Net.EndPoint,表示远程服务器。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int ReceiveFrom(byte[] buffer, ref EndPoint remoteEP);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags 将数据报接收到数据缓冲区并存储终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// 按引用传递的 System.Net.EndPoint,表示远程服务器。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int ReceiveFrom(byte[] buffer, SocketFlags socketFlags, ref EndPoint remoteEP);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags 将指定的字节数接收到数据缓冲区并存储终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// 按引用传递的 System.Net.EndPoint,表示远程服务器。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.ArgumentOutOfRangeException:
// size 小于 0。- 或 -size 大于 buffer 的长度。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -未设置 System.Net.Sockets.Socket.LocalEndPoint 属性。- 或
// -访问 System.Net.Sockets.Socket 时发生操作系统错误。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public int ReceiveFrom(byte[] buffer, int size, SocketFlags socketFlags, ref EndPoint remoteEP);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags 将指定字节数的数据接收到数据缓冲区的指定位置并存储终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 参数中存储所接收数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// 按引用传递的 System.Net.EndPoint,表示远程服务器。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去偏移量参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -未设置 System.Net.Sockets.Socket.LocalEndPoint 属性。- 或
// -尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int ReceiveFrom(byte[] buffer, int offset, int size, SocketFlags socketFlags, ref EndPoint remoteEP);
//
// 摘要:
// 开始从指定网络设备中异步接收数据。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentNullException:
// System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint 不能为 null。
//
// T:System.InvalidOperationException:
// 已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs 对象执行套接字操作。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
public bool ReceiveFromAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags 将指定字节数的数据接收到数据缓冲区的指定位置,然后存储终结点和数据包信息。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它是存储接收到的数据的位置。
//
// offset:
// buffer 参数中存储所接收数据的位置。
//
// size:
// 要接收的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// 按引用传递的 System.Net.EndPoint,表示远程服务器。
//
// ipPacketInformation:
// System.Net.Sockets.IPPacketInformation,它保存地址和接口信息。
//
// 返回结果:
// 接收到的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去偏移量参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -未设置 System.Net.Sockets.Socket.LocalEndPoint 属性。- 或
// -.NET Framework 运行在 AMD 64 位处理器上。- 或 -尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.NotSupportedException:
// 操作系统为 Windows 2000 或更低版本,而此方法需要在 Windows XP 中使用。
public int ReceiveMessageFrom(byte[] buffer, int offset, int size, ref SocketFlags socketFlags, ref EndPoint remoteEP, out IPPacketInformation ipPacketInformation);
//
// 摘要:
// 开始使用指定的 System.Net.Sockets.SocketAsyncEventArgs.SocketFlags 将指定字节数的数据异步接收到数据缓冲区的指定位置,并存储终结点和数据包信息。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentNullException:
// System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint 不能为 null。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。
public bool ReceiveMessageFromAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 将数据发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(byte[] buffer);
//
// 摘要:
// 将列表中的一组缓冲区发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffers:
// System.Byte 类型的 System.ArraySegment`1 的列表,它包含要发送的数据。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。
//
// T:System.ArgumentException:
// buffers 为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。请参见下面的备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public int Send(IList<ArraySegment<byte>> buffers);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags 将数据发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(byte[] buffer, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将列表中的一组缓冲区发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffers:
// System.Byte 类型的 System.ArraySegment`1 的列表,它包含要发送的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。
//
// T:System.ArgumentException:
// buffers 为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将列表中的一组缓冲区发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffers:
// System.Byte 类型的 System.ArraySegment`1 的列表,它包含要发送的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffers 为 null。
//
// T:System.ArgumentException:
// buffers 为空。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(IList<ArraySegment<byte>> buffers, SocketFlags socketFlags, out SocketError errorCode);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将指定字节数的数据发送到已连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// size 小于 0 或超过缓冲区的大小。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -访问套接字时发生操作系统错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public int Send(byte[] buffer, int size, SocketFlags socketFlags);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将指定字节数的数据发送到已连接的 System.Net.Sockets.Socket(从指定的偏移量开始)。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// offset:
// 数据缓冲区中开始发送数据的位置。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -访问 System.Net.Sockets.Socket 时发生操作系统错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags);
//
// 摘要:
// 从指定的偏移量开始使用指定的 System.Net.Sockets.SocketFlags 将指定字节数的数据发送到连接的 System.Net.Sockets.Socket。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// offset:
// 数据缓冲区中开始发送数据的位置。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// errorCode:
// 一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
//
// 返回结果:
// 已发送到 System.Net.Sockets.Socket 的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -访问 System.Net.Sockets.Socket 时发生操作系统错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode);
//
// 摘要:
// 将数据异步发送到连接的 System.Net.Sockets.Socket 对象。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentException:
// e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Buffer 或 System.Net.Sockets.SocketAsyncEventArgs.BufferList
// 属性必须引用有效的缓冲区。可以设置这两个属性中的某一个,但不能同时设置这两个属性。
//
// T:System.InvalidOperationException:
// 已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs 对象执行套接字操作。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// System.Net.Sockets.Socket 尚未连接或者尚未通过 System.Net.Sockets.Socket.Accept、System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs)
// 或 Overload:System.Net.Sockets.Socket.BeginAccept 方法获得。
public bool SendAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 使用 System.Net.Sockets.TransmitFileOptions.UseDefaultWorkerThread 传输标志,将文件 fileName
// 发送到连接的 System.Net.Sockets.Socket 对象。
//
// 参数:
// fileName:
// 一个 System.String,它包含要发送的文件的路径和名称。此参数可以为 null。
//
// 异常:
// T:System.NotSupportedException:
// 套接字未连接到远程主机。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 对象不处于阻止模式,无法接受此同步调用。
//
// T:System.IO.FileNotFoundException:
// 未找到文件 fileName。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public void SendFile(string fileName);
//
// 摘要:
// 使用指定的 System.Net.Sockets.TransmitFileOptions 值,将文件 fileName 和数据缓冲区发送到连接的 System.Net.Sockets.Socket
// 对象。
//
// 参数:
// fileName:
// 一个 System.String,它包含要发送的文件的路径和名称。此参数可以为 null。
//
// preBuffer:
// 一个 System.Byte 数组,包含发送文件前要发送的数据。此参数可以为 null。
//
// postBuffer:
// 一个 System.Byte 数组,包含发送文件后要发送的数据。此参数可以为 null。
//
// flags:
// 一个或多个 System.Net.Sockets.TransmitFileOptions 值。
//
// 异常:
// T:System.NotSupportedException:
// 操作系统不是 Windows NT 或更高版本。- 或 -套接字未连接到远程主机。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.InvalidOperationException:
// System.Net.Sockets.Socket 对象不处于阻止模式,无法接受此同步调用。
//
// T:System.IO.FileNotFoundException:
// 未找到文件 fileName。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public void SendFile(string fileName, byte[] preBuffer, byte[] postBuffer, TransmitFileOptions flags);
//
// 摘要:
// 将文件集合或者内存中的数据缓冲区以异步方法发送给连接的 System.Net.Sockets.Socket 对象。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.IO.FileNotFoundException:
// 未找到在 System.Net.Sockets.SendPacketsElement.FilePath 属性中指定的文件。
//
// T:System.InvalidOperationException:
// 已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs 对象执行套接字操作。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。如果 System.Net.Sockets.Socket 未连接到远程主机,也会发生此异常。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// 使用的是无连接 System.Net.Sockets.Socket,并且所发送的文件超过了基础传输的最大数据包大小。
public bool SendPacketsAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 将数据发送到指定的终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// remoteEP:
// System.Net.EndPoint,它表示数据的目标位置。
//
// 返回结果:
// 已发送的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int SendTo(byte[] buffer, EndPoint remoteEP);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将数据发送到特定的终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// System.Net.EndPoint,它表示数据的目标位置。
//
// 返回结果:
// 已发送的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public int SendTo(byte[] buffer, SocketFlags socketFlags, EndPoint remoteEP);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将指定字节数的数据发送到指定的终结点。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// System.Net.EndPoint,它表示数据的目标位置。
//
// 返回结果:
// 已发送的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.ArgumentOutOfRangeException:
// 指定的 size 超出 buffer 的大小。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public int SendTo(byte[] buffer, int size, SocketFlags socketFlags, EndPoint remoteEP);
//
// 摘要:
// 使用指定的 System.Net.Sockets.SocketFlags,将指定字节数的数据发送到指定终结点(从缓冲区中的指定位置开始)。
//
// 参数:
// buffer:
// System.Byte 类型的数组,它包含要发送的数据。
//
// offset:
// 数据缓冲区中开始发送数据的位置。
//
// size:
// 要发送的字节数。
//
// socketFlags:
// System.Net.Sockets.SocketFlags 值的按位组合。
//
// remoteEP:
// System.Net.EndPoint,它表示数据的目标位置。
//
// 返回结果:
// 已发送的字节数。
//
// 异常:
// T:System.ArgumentNullException:
// buffer 为 null。- 或 -remoteEP 为 null。
//
// T:System.ArgumentOutOfRangeException:
// offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer 的长度减去
// offset 参数的值。
//
// T:System.Net.Sockets.SocketException:
// socketFlags 不是值的有效组合。- 或 -访问 System.Net.Sockets.Socket 时发生操作系统错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Security.SecurityException:
// 调用堆栈中的调用方没有所需的权限。
public int SendTo(byte[] buffer, int offset, int size, SocketFlags socketFlags, EndPoint remoteEP);
//
// 摘要:
// 向特定远程主机异步发送数据。
//
// 参数:
// e:
// 要用于此异步套接字操作的 System.Net.Sockets.SocketAsyncEventArgs 对象。
//
// 返回结果:
// 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 e 参数的 System.Net.Sockets.SocketAsyncEventArgs.Completed
// 事件,并且可能在方法调用返回后立即检查作为参数传递的 e 对象以检索操作的结果。
//
// 异常:
// T:System.ArgumentNullException:
// System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint 不能为 null。
//
// T:System.InvalidOperationException:
// 已经在使用 e 参数中指定的 System.Net.Sockets.SocketAsyncEventArgs 对象执行套接字操作。
//
// T:System.NotSupportedException:
// 此方法需要 Windows XP 或更高版本。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
//
// T:System.Net.Sockets.SocketException:
// 指定的协议是面向连接的,但 System.Net.Sockets.Socket 尚未连接。
public bool SendToAsync(SocketAsyncEventArgs e);
//
// 摘要:
// 设置套接字的 IP 保护级别。
//
// 参数:
// level:
// 要为此套接字设置的 IP 保护级别。
//
// 异常:
// T:System.ArgumentException:
// level 参数不能为 System.Net.Sockets.IPProtectionLevel.Unspecified。IP 保护级别不能设置为未指定。
//
// T:System.NotSupportedException:
// 套接字的 System.Net.Sockets.AddressFamily 必须为 System.Net.Sockets.AddressFamily.InterNetworkV6
// 或 System.Net.Sockets.AddressFamily.InterNetwork。
public void SetIPProtectionLevel(IPProtectionLevel level);
//
// 摘要:
// 将指定的 System.Net.Sockets.Socket 选项设置为指定值,表示为对象。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// optionValue:
// 一个 System.Net.Sockets.LingerOption 或 System.Net.Sockets.MulticastOption,它包含该选项的值。
//
// 异常:
// T:System.ArgumentNullException:
// optionValue 为 null。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, object optionValue);
//
// 摘要:
// 将指定的 System.Net.Sockets.Socket 选项设置为指定的值,表示为字节数组。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// optionValue:
// System.Byte 类型的数组,表示选项值。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue);
//
// 摘要:
// 将指定的 System.Net.Sockets.Socket 选项设置为指定的整数值。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// optionValue:
// 该选项的值。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, int optionValue);
//
// 摘要:
// 将指定的 System.Net.Sockets.Socket 选项设置为指定的 System.Boolean 值。
//
// 参数:
// optionLevel:
// System.Net.Sockets.SocketOptionLevel 值之一。
//
// optionName:
// System.Net.Sockets.SocketOptionName 值之一。
//
// optionValue:
// 选项的值,表示为 System.Boolean。
//
// 异常:
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 对象已关闭。
//
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
public void SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, bool optionValue);
//
// 摘要:
// 禁用某 System.Net.Sockets.Socket 上的发送和接收。
//
// 参数:
// how:
// System.Net.Sockets.SocketShutdown 值之一,它指定不再允许执行的操作。
//
// 异常:
// T:System.Net.Sockets.SocketException:
// 尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
//
// T:System.ObjectDisposedException:
// System.Net.Sockets.Socket 已关闭。
public void Shutdown(SocketShutdown how);
//
// 摘要:
// 释放由 System.Net.Sockets.Socket 使用的非托管资源,并可根据需要释放托管资源。
//
// 参数:
// disposing:
// 如果为 true,则释放托管资源和非托管资源;如果为 false,则仅释放非托管资源。
protected virtual void Dispose(bool disposing);
}
}
Net.Sockets的更多相关文章
- HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)
1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是c ...
- 联不上网 Unable to initialize Windows Sockets interface. General failure.
电脑莫名联不上网 Unable to initialize Windows Sockets interface. General failure. Unable to initialize the W ...
- Unrecognized Windows Sockets error: 0: JVM_Bind 异常怎么办
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法 java.net.SocketException: Unrecognized Window ...
- System.Net.Sockets.Socket SendAsync System.ObjectDisposedException: Cannot access a disposed object.
发生未处理的域异常! System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net ...
- Socket Programming in C#--Multiple Sockets
Now lets say you have two sockets connecting to either two different servers or same server (which i ...
- ava.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind (解决思路)
当我们在启动tomcat服务的时候报错信息:java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bin 分析:从错 ...
- Unrecognized Windows Sockets error: 0: JVM_Bind
Unrecognized Windows Sockets error: 0: JVM_Bind [转帖]今天很是奇怪,在运行服务器端的时候,经常遇到这个异常: java.net.SocketExcep ...
- weblogic sockets 和 thread 问题解决
原创文章,转载须注明出处. 这个问题网上很多答案,可惜没一个能解决.后来发现是weblogic 必须适配JDK 版本. 一般会报这个错误,There are: 5 active sockets, bu ...
- socket.io问题,io.sockets.manager.rooms和io.sockets.clients('particular room')这两个函数怎么用?
为什么我用nodejs用这个两个函数获取都会出错呢?是不是socket的api改了?请问现在获取房间数和当前房间的客户怎么获取?什么函数?谢谢!!急求! 网友采纳 版本问题.io.socket ...
随机推荐
- [.net 面向对象编程基础] (22) 事件
[.net 面向对象编程基础] (22) 事件 事件(Event)是学习.net面向对象编程很重要的一部分,在学习事件之前,我们实际上已经在很多地方使用了事件,比如控件的click事件等,这些都是. ...
- 使用Struts 拦截namespace进行权限控制
有时候我需要在几个包下都需要进行同一个权限控制.如在购物网站中,我们需要进入个人中心.下订单.评价商品等等都需要进行登录权限控制,但是这几个模块并不是位于同一个package下.Struts提供的拦截 ...
- [ZigBee] 4、ZigBee基础实验——中断
前言 上一篇介绍了CC2530的IO的基础知识,并用LED的控制来展示如何配置并控制GPIO的输出,用KEY状态的读取实验来展示如何读取GPIO的状态.从上一节的KEY状态读取的代码看出是采用轮训方式 ...
- [硬件项目] 1、汽车倒车雷达设计——基于API8108A芯片简易智能语音模块的设计与实现
前言 汽车倒车防碰撞系统是一种辅助汽车泊车装置.低配的由超声波收发电路.回波放大电路.语音提示电路.数码显示.报警及温度补偿电路组成,高配的有时会带有后视视频系统.[1] 一.工作原理 如下 ...
- 用DirectX实现魔方(三)视角变换及缩放(附源码)
在本系列第一篇介绍过鼠标按键的功能,如下. 左键拖拽 - 旋转魔方 右键拖拽 - 变换视角 滚轮 - 缩放魔方 今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现M ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明
一.基础说明 这里说的“通用接口(CommonAPIs)”是使用微信公众账号一系列高级功能的必备验证功能(应用于开发模式). 我们通过微信后台唯一的凭证,向通用接口发出请求,得到访问令牌(Access ...
- 翻译:AKKA笔记 - 介绍Actors
任何以前做过多线程的人都不会否认管理多线程程序是困难并且痛苦的. 我说管理是因为它开始很容易而且当你看到性能提升时会很兴奋.但是,当你看到你没法从子线程的错误中恢复 或者 这些僵尸bug很难重现 或者 ...
- 知方可补不足~SQL2005使用ROW_NUMBER() OVER()进行数据分页
回到目录 数据分页是这个经常说的东西,无论在WEBForm还是WinForm中它都会被单独拿出来,或者是公用组件,或者是公用类库,反正对于数据分页这个东西,总是我们关注的一个话题,但事实上,数据分页归 ...
- Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier),
Atitit 深入了解UUID含义是通用唯一识别码 (Universally Unique Identifier), UUID1 作用1 组成1 全球唯一标识符(GUID)2 UUID 编辑 UUID ...
- DataGridView的Cell事件的先后触发顺序
最近正在使用“DataGridView”对一个旧的Vs 2003开发的WINDOWS应用程序进行改造. 发现Vs 2003中的"DataGrid"中的一些事件已经在新的控件Data ...