- 1
- 0
- 约1.04万字
- 约 41页
- 2019-10-16 发布于湖北
- 举报
3.3.1 异步程序编程方法 1.BeginAcceptTcpClient方法和EndAcceptTcpClient方法 回调方法中传递的参数只有一个,而且必须是IAsyncResult类型的接口,它表示异步操作的状态,如果有多个状态需要传递,可以将其事先封装到某个类中 AsyncCallback callback = new AsyncCallback(AcceptClient); tcpListener.BeginAcceptTcpClient(callback, tcpListener); …. void AcceptClient( IAsyncResult ar) { … TcpListener myListener = (TcpListener)ar.AsyncState; TcpClient client = myListener.EndAcceptTcpClient(ar); … } 3.3.1 异步程序编程方法 1.BeginAcceptTcpClient方法和EndAcceptTcpClient方法 程序执行BeginAcceptTcpClient方法后,会立即在线程池中自动创建一个线程,同时在该线程中监听客户端连接请求。一旦接受了客户端连接请求,就通过委托执行相应的方法,并返回状态信息。 public IAsyncResult BeginAcceptTcpClient(AsyncCallback callback, Object state) 参数1:AsyncCallback类型的委托, 参数2:Object类型,用于将状态信息传递给委托调用的方法。 3.3.1 异步程序编程方法 2.BeginConnect方法和EndConnect方法 在BeginConnect方法操作完成前,调用该方法的线程不会阻塞,系统会自动用独立的线程来执行该方法,直到与远程主机连接成功或抛出异常。 public IAsyncResult BeginConnect(IPAddress address, int port, AsyncCallback requestCallback, Object state); 参数:address为远程主机的IPAddress对象; port为远程主机的端口号; requestCallback为AsyncCallback类型的委托; state为包含连接操作的相关信息,当操作完成时,此对象会被传递给requestCallback委托。 3.3.1 异步程序编程方法 2.BeginConnect方法和EndConnect方法 … AsyncCallback requestCallback = new AsyncCallback(FinishConnect); tcpClient.BeginConnect(远程主机IP或域名,远程主机端口号, requestCallback, tcpClient); … void FinishConnect (IAsyncResult ar) { … tcpClient = (TcpClient)ar.AsyncState; client.EndConnect(ar); … } 在自定义的FinishConnect方法中,通过获取的状态信息得到新的TcpClient 类型的对象,并调用EndConnect完成连接请求。 3.3.1 异步程序编程方法 3.异步发送和接收数据 public override IAsyncResult BeginWrite(byte[ ] buffer, int offset, int size, AsyncCallback callback, Object state); public override IAsyncResult BeginRead(byte[ ] buffer, int offset, int size, AsyncCallback callback, Object state); (1)buffer为字节数组,表示用来存放要发送的数据,从NetworkStream读取的数据; (2)offset用来存放发送或读取的数据在缓冲区中的起始位置; (3)size用来存放发送或接收数据的字节数; (4)callback是异步回调类型的委托 (5)state包含状态信息。 3.3.2 界面设计 服务器端 客户端 3.3.3 服务器端程序编写 1.在监听类中声明一个委托ReceiveMessageDelegate用来
您可能关注的文档
- 第21讲 网络优化.ppt
- 第20课 第一次世界大战.ppt
- 第21、22讲动能定理.ppt
- 第20第三次科技革命.ppt
- 第21章 生动有力的培训.ppt
- 第21讲 设备管理.ppt
- 第21题 一次函数应用专项训练.doc
- 第2-五单元第一章第一节_软体动物和节肢动物.ppt
- 第22章 电子仪表与防盗系统.ppt
- 第23与24讲 光-中考复习.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)