网络软件设8——异步响应.pptVIP

  • 2
  • 0
  • 约5.1千字
  • 约 21页
  • 2018-09-07 发布于浙江
  • 举报
网络软件设8——异步响应

* * * * * * * * * * * * 段景山 网络软件设计 Win32 Socket 异步消息机制 WSAAsyncSelect() 制作 主讲 段景山 * 消息驱动与Socket服务机制的矛盾 阻塞? 造成主线程无法响应窗口消息 非阻塞? 设置套接字为非阻塞状态(见课件9) 主线程忙等无法响应窗口消息 select? 主线程受select机制影响仍无法响应窗口消息 多线程并发服务? 子线程可以独立工作,不致影响主线程响应消息 但主线程一旦需要循环等待接受客户连接,仍出现以上问题 基于windows消息的循环 基于select的循环 * 矛盾的根源 使用套接字时的循环机制 循环等待客户连接 循环等待客户数据 在窗口程序中循环或阻塞都会影响主线程对消息的响应 while(1){ ns = accept(sock,…); … } while(recv 0){ len = recv(sock,…); … } 事件 * 解决矛盾 方案一 为所有需要循环等待的程序段生成线程 为需要循环等待客户连接的部分生成子线程 为需要循环等待数据、完成通信的部分生成子线程 窗口函数 click start while(1){ accept(); } while(1){ recv(); } 客户 connect 客户 connect while(1)

文档评论(0)

1亿VIP精品文档

相关文档