苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 11551|回复: 5

[其他] Socket的异步调用

[复制链接]
发表于 2013-1-25 10:18:31 | 显示全部楼层 |阅读模式
Socket异步调用中的Begin和End方法实现了什么,返回的结果都包括什么信息?最好举个例子,比如BeginConnect方法


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-1-25 10:29:27 | 显示全部楼层
Socket里那好像就没有这两个方法吧, 希望楼主说的具体一些,具体是那个方法
 楼主| 发表于 2013-1-25 10:34:37 | 显示全部楼层
本帖最后由 印醒 于 2013-1-25 10:36 编辑
admin 发表于 2013-1-25 10:29
Socket里那好像就没有这两个方法吧, 希望楼主说的具体一些,具体是那个方法


嗯,不是Begin和End方法,是BeginConnect,BeginAccept,BeginSend,BeginReceive,EndConnect,EndAccept,EndSend等方法,这些我看不太懂,下面这个是在Socket类中BeginConnect方法的声明:
  1. public IAsyncResult BeginConnect(EndPoint remoteEP, AsyncCallback callback, object state);
复制代码
发表于 2013-1-25 10:41:35 | 显示全部楼层
印醒 发表于 2013-1-25 10:34
嗯,不是Begin和End方法,是BeginConnect,BeginAccept,BeginSend,BeginReceive,EndConnect,EndAccept,E ...


你想了解那个类,选择后直接安F12就知道了
发表于 2013-1-25 10:44:19 | 显示全部楼层
[code=csharp]  //
        // 摘要:
        //     异步接受传入的连接尝试,并创建新的 System.Net.Sockets.Socket 来处理远程主机通信。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult,它存储此异步操作的状态信息以及任何用户定义数据。
        //
        // 返回结果:
        //     一个 System.Net.Sockets.Socket,它处理与远程主机的通信。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     asyncResult 并不是通过对 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
        //     的调用创建的。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   System.InvalidOperationException:
        //     System.Net.Sockets.Socket.EndAccept(System.IAsyncResult) 方法以前被调用过。
        //
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        public Socket EndAccept(IAsyncResult asyncResult);
        //
        // 摘要:
        //     异步接受传入的连接尝试,并创建新的 System.Net.Sockets.Socket 对象来处理远程主机通信。此方法返回包含所传输的初始数据的缓冲区。
        //
        // 参数:
        //   buffer:
        //     包含所传输字节的类型 System.Byte 的数组。
        //
        //   asyncResult:
        //     System.IAsyncResult 对象,它存储此异步操作的状态信息以及任何用户定义数据。
        //
        // 返回结果:
        //     一个 System.Net.Sockets.Socket 对象,它处理与远程主机的通信。
        //
        // 异常:
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.ArgumentNullException:
        //     asyncResult 为空。
        //
        //   System.ArgumentException:
        //     asyncResult 并不是通过对 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
        //     的调用创建的。
        //
        //   System.InvalidOperationException:
        //     System.Net.Sockets.Socket.EndAccept(System.IAsyncResult) 方法以前被调用过。
        //
        //   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 对象,它处理与远程主机的通信。
        //
        // 异常:
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.ArgumentNullException:
        //     asyncResult 为空。
        //
        //   System.ArgumentException:
        //     asyncResult 并不是通过对 System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)
        //     的调用创建的。
        //
        //   System.InvalidOperationException:
        //     System.Net.Sockets.Socket.EndAccept(System.IAsyncResult) 方法以前被调用过。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问 System.Net.Sockets.Socket 时发生错误。有关更多信息,请参见备注部分。
        public Socket EndAccept(out byte[] buffer, out int bytesTransferred, IAsyncResult asyncResult);
        //
        // 摘要:
        //     结束挂起的异步连接请求。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)
        //     方法调用未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步连接调用过 System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        public void EndConnect(IAsyncResult asyncResult);
        //
        // 摘要:
        //     结束挂起的异步断开连接请求。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult 对象,它存储此异步操作的状态信息以及所有用户定义数据。
        //
        // 异常:
        //   System.NotSupportedException:
        //     操作系统为 Windows 2000 或更低版本,而此方法需要在 Windows XP 中使用。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginDisconnect(System.Boolean,System.AsyncCallback,System.Object)
        //     方法调用未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步连接调用过 System.Net.Sockets.Socket.EndDisconnect(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.Net.WebException:
        //     断开连接请求已超时。
        public void EndDisconnect(IAsyncResult asyncResult);
        //
        // 摘要:
        //     结束挂起的异步读取。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
        //
        // 返回结果:
        //     接收到的字节数。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
        //     方法调用未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        public int EndReceive(IAsyncResult asyncResult);
        //
        // 摘要:
        //     结束挂起的异步读取。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
        //
        //   errorCode:
        //     一个 System.Net.Sockets.SocketError 对象,它存储套接字错误。
        //
        // 返回结果:
        //     接收到的字节数。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
        //     方法调用未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        public int EndReceive(IAsyncResult asyncResult, out SocketError errorCode);
        //
        // 摘要:
        //     结束挂起的、从特定终结点进行异步读取。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
        //
        //   endPoint:
        //     源 System.Net.EndPoint。
        //
        // 返回结果:
        //     如果成功,则返回已接收的字节数。如果不成功,则返回 0。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   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。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。- 或 -endPoint 为 null。
        //
        //   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。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步读取调用过 System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   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
        //     错误。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
        //     方法调用后未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前为异步发送已调用过 System.Net.Sockets.Socket.EndSend(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   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
        //     错误。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)
        //     方法调用后未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前为异步发送已调用过 System.Net.Sockets.Socket.EndSend(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        public int EndSend(IAsyncResult asyncResult, out SocketError errorCode);
        //
        // 摘要:
        //     结束文件的挂起异步发送。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult 对象,它存储此异步操作的状态信息。
        //
        // 异常:
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.ArgumentNullException:
        //     asyncResult 为空。
        //
        //   System.ArgumentException:
        //     System.Net.Sockets.Socket.BeginSendFile(System.String,System.AsyncCallback,System.Object)
        //     方法调用未返回 asyncResult。
        //
        //   System.InvalidOperationException:
        //     先前曾为异步 System.Net.Sockets.Socket.BeginSendFile(System.String,System.AsyncCallback,System.Object)
        //     调用过 System.Net.Sockets.Socket.EndSendFile(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。请参见下面的备注部分。
        public void EndSendFile(IAsyncResult asyncResult);
        //
        // 摘要:
        //     结束挂起的、向指定位置进行的异步发送。
        //
        // 参数:
        //   asyncResult:
        //     System.IAsyncResult,它存储此异步操作的状态信息以及所有用户定义数据。
        //
        // 返回结果:
        //     如果成功,则返回已发送的字节数;否则会返回无效 System.Net.Sockets.Socket 错误。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     asyncResult 为 null。
        //
        //   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。
        //
        //   System.InvalidOperationException:
        //     先前为异步发送已调用过 System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        public int EndSendTo(IAsyncResult asyncResult);[/code]
发表于 2013-1-25 10:46:00 | 显示全部楼层
[code=csharp] //
        // 摘要:
        //     开始一个异步操作来接受一个传入的连接尝试。
        //
        // 参数:
        //   callback:
        //     System.AsyncCallback 委托。
        //
        //   state:
        //     一个对象,它包含此请求的状态信息。
        //
        // 返回结果:
        //     一个 System.IAsyncResult,它引用异步 System.Net.Sockets.Socket 创建。
        //
        // 异常:
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        //
        //   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)。-
        //     或 -已接受的套接字是绑定的。
        //
        //   System.ArgumentOutOfRangeException:
        //     receiveSize 小于 0。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        public IAsyncResult BeginAccept(AsyncCallback callback, object state);
        //
        // 摘要:
        //     开始异步操作以接受传入的连接尝试并接收客户端应用程序发送的第一个数据块。
        //
        // 参数:
        //   receiveSize:
        //     要从发送方读取的字节数。
        //
        //   callback:
        //     System.AsyncCallback 委托。
        //
        //   state:
        //     一个对象,它包含此请求的状态信息。
        //
        // 返回结果:
        //     一个 System.IAsyncResult,它引用异步 System.Net.Sockets.Socket 创建。
        //
        // 异常:
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        //
        //   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)。-
        //     或 -已接受的套接字是绑定的。
        //
        //   System.ArgumentOutOfRangeException:
        //     receiveSize 小于 0。
        //
        //   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 对象创建。
        //
        // 异常:
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.NotSupportedException:
        //     此方法需要 Windows NT。
        //
        //   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)。-
        //     或 -已接受的套接字是绑定的。
        //
        //   System.ArgumentOutOfRangeException:
        //     receiveSize 小于 0。
        //
        //   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,它引用异步连接。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     remoteEP 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   System.Security.SecurityException:
        //     调用堆栈上部的调用方无权执行所请求的操作。
        //
        //   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 和端口号指定。
        //
        // 参数:
        //   address:
        //     远程主机的 System.Net.IPAddress。
        //
        //   port:
        //     远程主机的端口号。
        //
        //   requestCallback:
        //     一个 System.AsyncCallback 委托,它引用连接操作完成时要调用的方法。
        //
        //   state:
        //     一个用户定义对象,其中包含连接操作的相关信息。操作完成时,此对象传递给了 requestCallback 委托。
        //
        // 返回结果:
        //     System.IAsyncResult,它引用异步连接。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     address 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   System.NotSupportedException:
        //     System.Net.Sockets.Socket 不在套接字族中。
        //
        //   System.ArgumentOutOfRangeException:
        //     此端口号无效。
        //
        //   System.ArgumentException:
        //     address 的长度为零。
        //
        //   System.InvalidOperationException:
        //     System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
        public IAsyncResult BeginConnect(IPAddress address, int port, AsyncCallback requestCallback, object state);
        //
        // 摘要:
        //     开始一个对远程主机连接的异步请求。主机由 System.Net.IPAddress 数组和端口号指定。
        //
        // 参数:
        //   addresses:
        //     至少一个 System.Net.IPAddress,指定远程主机。
        //
        //   port:
        //     远程主机的端口号。
        //
        //   requestCallback:
        //     一个 System.AsyncCallback 委托,它引用连接操作完成时要调用的方法。
        //
        //   state:
        //     一个用户定义对象,其中包含连接操作的相关信息。操作完成时,此对象传递给了 requestCallback 委托。
        //
        // 返回结果:
        //     System.IAsyncResult,它引用异步连接。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     addresses 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   System.NotSupportedException:
        //     此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
        //     的套接字有效。
        //
        //   System.ArgumentOutOfRangeException:
        //     此端口号无效。
        //
        //   System.ArgumentException:
        //     address 的长度为零。
        //
        //   System.InvalidOperationException:
        //     System.Net.Sockets.Socket 为 System.Net.Sockets.Socket.Listen(System.Int32)。
        public IAsyncResult BeginConnect(IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
        //
        // 摘要:
        //     开始一个对远程主机连接的异步请求。主机由主机名和端口号指定。
        //
        // 参数:
        //   host:
        //     远程主机的名称。
        //
        //   port:
        //     远程主机的端口号。
        //
        //   requestCallback:
        //     一个 System.AsyncCallback 委托,它引用连接操作完成时要调用的方法。
        //
        //   state:
        //     一个用户定义对象,其中包含连接操作的相关信息。操作完成时,此对象传递给了 requestCallback 委托。
        //
        // 返回结果:
        //     System.IAsyncResult,它引用异步连接。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     host 为 null。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   System.NotSupportedException:
        //     此方法对 System.Net.Sockets.AddressFamily.InterNetwork 或 System.Net.Sockets.AddressFamily.InterNetworkV6
        //     系列中的套接字有效。
        //
        //   System.ArgumentOutOfRangeException:
        //     此端口号无效。
        //
        //   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 对象,它引用异步操作。
        //
        // 异常:
        //   System.NotSupportedException:
        //     操作系统为 Windows 2000 或更低版本,而此方法需要在 Windows XP 中使用。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。- 或 -remoteEP 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ArgumentOutOfRangeException:
        //     offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer
        //     的长度减去 offset 参数的值。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。- 或 -remoteEP 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ArgumentOutOfRangeException:
        //     offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer
        //     的长度减去 offset 参数的值。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffers 为 null。
        //
        //   System.ArgumentException:
        //     buffers 为空。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。请参见下面的备注部分。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffers 为 null。
        //
        //   System.ArgumentException:
        //     buffers 为空。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。请参见下面的备注部分。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。请参见下面的备注部分。
        //
        //   System.ArgumentOutOfRangeException:
        //     offset 小于 0。- 或 -offset 小于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer
        //     的长度减去 offset 参数的值。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。请参见下面的备注部分。
        //
        //   System.ArgumentOutOfRangeException:
        //     offset 小于 0。- 或 -offset 小于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer
        //     的长度减去 offset 参数的值。
        //
        //   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 对象,它表示异步发送。
        //
        // 异常:
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.NotSupportedException:
        //     套接字未连接到远程主机。
        //
        //   System.IO.FileNotFoundException:
        //     未找到文件 fileName。
        //
        //   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 对象,它表示异步操作。
        //
        // 异常:
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 对象已关闭。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。请参见下面的备注部分。
        //
        //   System.NotSupportedException:
        //     操作系统不是 Windows NT 或更高版本。- 或 -套接字未连接到远程主机。
        //
        //   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。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。- 或 -remoteEP 为 null。
        //
        //   System.Net.Sockets.SocketException:
        //     尝试访问套接字时发生错误。有关更多信息,请参见备注部分。
        //
        //   System.ArgumentOutOfRangeException:
        //     offset 小于 0。- 或 -offset 大于 buffer 的长度。- 或 -size 小于 0。- 或 -size 大于 buffer
        //     的长度减去 offset 参数的值。
        //
        //   System.ObjectDisposedException:
        //     System.Net.Sockets.Socket 已关闭。
        //
        //   System.Security.SecurityException:
        //     调用堆栈上部的调用方无权执行所请求的操作。
        public IAsyncResult BeginSendTo(byte[] buffer, int offset, int size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, object state);[/code]
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 03:37

© 2014-2021

快速回复 返回顶部 返回列表