利用mfc进行网络编程networkprogrammingwithmfc内容摘要:
出现丢失、重复、乱序等现象 CAsyncSocket类 指定套接字的种类 ■ Create成员函数缺省创建的是流套接字SOCK_STREAM ■ 也可以根据需要指明创建数据报套接字SOCK_DGRAM ■ 流套接字和数据报套接字在收发数据时所调用的函数有所不同 –流套接字调用成员函数 • Send 和 Receive –数据报套接字调用成员函数 • SendTo 和 ReceiveFrom CAsyncSocket类 套接字的工作模式 ■ 套接字在使用时分为两种模式 –阻塞式 –非阻塞式 ■ 阻塞模式也称为 同步模式 ■ 非阻塞模式也称为 异步模式 CAsyncSocket类 阻塞模式 ■ 在阻塞模式下,套接字函数要一直等到全部操作完成后才返回 ■ 例如,在建立连接时 –函数必须等到连接完全建立好为止 –调用函数的线程在这期间被挂起 –程序看起来好像停止了响应 CAsyncSocket类 阻塞模式的缺点 ■ 以阻塞模式执行套接字函数,可能会出现某个函数的执行等待很长时间的情况 ■ 必须考虑建立多个线程来执行每个套接字函数,程序编写起来比较繁琐 CAsyncSocket类 非阻塞模式 ■ BSD Unix是命令行方式的系统 –套接字适合以阻塞模式工作 ■ Windows是消息驱动的系统 –套接字适合以 非阻塞模式 工作 –Windows为所有的套接字函数提供了非阻塞模式的版本 CAsyncSocket类 非阻塞模式 ■ 在非阻塞模式下 –一个套接字函数被调用后会立即返回 –即使它执行的操作还没有全部完成 ■ 当函数最终完成所执行的操作时 –Windows通过发送消息的方式通知程序 –该模式适合 Windows的消息驱动体系 CAsyncSocket类 非阻塞模式 ■ Windows套接字接口建议程序员使用非阻塞模式进行网络通信编程 ■ 一个 CAsyncSocket类对象默认地工作在非阻塞模式(即异步模式)下 ■ 这就是 CAsyncSocket( Asyncronization Socket) 这个类名称的来源 CAsyncSocket类 绑定 IP地址和端口号 1. 调用 Create函数时还可以指定,套接字对象所要绑定的 – 主机 IP地址 – 端口号 2. Create函数根据这个 IP地址和端口号去调用 Bind函数以实现套接字的绑定 CAsyncSocket类 通信前的准备工作 1. 客户端调用 Connect函数以连接到服务器 2. 服务器端调用 Listen函数监听客户的进入 3. 服务器端调用 Accept函数与客户建立连接 客 户 端 服 务 器。利用mfc进行网络编程networkprogrammingwithmfc
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。