TCPIP协议分析与应用编程 MFC套接字编程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模式” 模式”或“非阻塞模式”。 非阻塞模式” • 当一个套接字处于“阻塞模式”(即同步操作模 当一个套接字处于“阻塞模式” 它的阻塞函数(主要包括函数accept accept、 式)时,它的阻塞函数(主要包括函数accept、 connect、send、recv) connect、send、recv)直到操作完成才会返回 控制权。 控制权。 • 如果一个套接字处于“非阻塞模式”(即异步操 如果一个套接字处于“非阻塞模式” 作模式),则阻塞函数被调用后会立即返回, ),则阻塞函数被调用后会立即返回 作模式),则阻塞函数被调用后会立即返回,不 需要等待所需事件的发生。 需要等待所需事件的发生。
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
10
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
Connect函数 Connect函数 格式: 格式: BOOL Connect ( //地址串型的 LPCTSTR lpszHostAddress, //地址串型的 地址参数,可以是IP IP地址或主机名 地址参数,可以是IP地址或主机名 //端口号 UINT nHostPort //端口号 ); 或者 BOOL Connect ( const SOCKADDR* lpSockAddr, // SOCKADDR类型的地址参数 SOCKADDR类型的地址参数 //地址参数长度 int nSockAddrLen //地址参数长度 );
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
些函数的功能和格式与WinSock API函数类似 函数类似。 些函数的功能和格式与WinSock API函数类似。
6
• CAsyncSocket类定义了一组非常有用的成员函数,这 CAsyncSocket类定义了一组非常有用的成员函数 类定义了一组非常有用的成员函数,
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
13
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
ReceiveFrom函数 ReceiveFrom函数 格式: 格式: int ReceiveFrom ( //接收缓冲区 void* lpBuf, //接收缓冲区 //所接收数据的长度 int nBufLen, //所接收数据的长度 //远程套接字地址 CString& rSocketAddress, //远程套接字地址 //远程套接字端口号 UINT& rSocketPort, //远程套接字端口号 //指明数据的接收方式 int nFlags = 0 //指明数据的接收方式 ); 或者 int ReceiveFrom ( //接收缓冲区 void* lpBuf, //接收缓冲区 //所接收数据的长度 int nBufLen, //所接收数据的长度 //远程套接字结构地址 SOCKADDR* lpSockAddr, //远程套接字结构地址 //远程套接字结构地址长度 int* lpSockAddrLen, //远程套接字结构地址长度 //指明数据的接收方式 int nFlags = 0 //指明数据的接收方式 );
方法。 方法。 • 熟悉基于CSocket类的网络应用程序设计方法。 熟悉基于CSocket类的网络应用程序设计方法。 CSocket类的网络应用程序设计方法
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
4
• 在进行网络通信时,一个套接字可以处于“阻塞 在进行网络通信时,一个套接字可以处于“
第 8 MFC MFC MFC MFC
学习目标
3
• 掌握CasyncSocket类和CSocket类的使用方法。 掌握CasyncSocket类和CSocket类的使用方法。 CasyncSocket类和CSocket类的使用方法 • 熟悉基于CAsyncSocket类的网络应用程序设计 熟悉基于CAsyncSocket CAsyncSocket类的网络应用程序设计
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
11
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
Accept函数 Accept函数 格式: 格式: virtual BOOL Accept ( //侦 CAsyncSocket& rConnectedSocket, //侦 听套接字对象 //用于 SOCKADDR* lpSockAddr = NULL, //用于 保存被连接的远程套接字地址 //用于存储被 int* lpSockAddrLen = NULL //用于存储被 连接的远程套接字地址长度 );
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
16

CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
SendTo函数 SendTo函数 格式: 格式: int SendTo ( //待发送的数据缓冲区 const void* lpBuf, //待发送的数据缓冲区 //待发送的数据长度 int nBufLen, //待发送的数据长度 //远程套接字端口 UINT nHostPort, //远程套接字端口 //远程套接字的地址 LPCTSTR lpszHostAddress = NULL, //远程套接字的地址 ,可以是IP地址或主机名 可以是IP地址或主机名 IP //指明数据发送方式 int nFlags = 0 //指明数据发送方式 ); 或者 int SendTo ( //待发送的数据缓冲区 const void* lpBuf, //待发送的数据缓冲区 //待发送的数据长度 int nBufLen, //待发送的数据长度 //远程套接字结构地址 const SOCKADDR* lpSockAddr, //远程套接字结构地址 //远程套接字结构地址长度 int nSockAddrLen, //远程套接字结构地址长度 //指明数据发送方式 int nFlags = 0 //指明数据发送方式 );
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
8
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
Bind函数 Bind函数 格式: 格式: BOOL Bind ( //套接字端口号 UINT nSocketPort, //套接字端口号 LPCTSTR lpszSocketAddress = NULL // 套接字地址,IP地址或主机名 套接字地址,IP地址或主机名 ); 或者 BOOL Bind ( //套接字 const SOCKADDR* lpSockAddr, //套接字 结构地址 //套接字结构地址长度 int nSockAddrLen //套接字结构地址长度 );
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
14
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
ReceiveFromEx函数 ReceiveFromEx函数 格式: 格式: int ReceiveFromEx ( //接收缓冲区 void* lpBuf, //接收缓冲区 //所接收数据的长度 int nBufLen, //所接收数据的长度 //远程套接字结 CString& rSocketAddress, //远程套接字结 构地址 //远程套接字端口号 UINT& rSocketPort, //远程套接字端口号 //指明数据的接收方式 int nFlags = 0 //指明数据的接收方式 );
Create函数 Create函数 格式: 格式: BOOL Create ( //套接字端口号 UINT nSocketPort = 0, //套接字端口号 //套接字类型 int nSocketType = SOCK_STREAM, //套接字类型 long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | //事件屏蔽 FD_CONNECT | FD_CLOSE, //事件屏蔽 位 //套接字地址 套接字地址, LPCTSTR lpszSocketAddress = NULL //套接字地址, IP地址或主机名 IP地址或主机名 );
第 8 MFC MFC MFC MFC
ห้องสมุดไป่ตู้
CAsyncSocket类 CAsyncSocket类
9
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
Listen函数 Listen函数 格式: 格式: BOOL Listen ( //等待连接的 int nConnectionBacklog = 5 //等待连接的 最大队列长度 );
第88章mfc套接字编程21使用casyncsocket类编程?casyncsocket类编程模型?基于casyncsocket类的字节流型套接字编程模型第88章mfc套接字编程22使用casyncsocket类编程?casyncsocket类编程模型?基于casyncsocket类的数据报型套接字的编程模型第88章mfc套接字编程23casyncsocket类编程实例?应用界面?实现方法?首先在casyncsocket类的基础上定义了一个cudpsocket类以对程序所需要的功能进一步封装提供了bindlocatepc函数实现对指定ip地址和端口号的绑定和sendtoremotepc函数实现数据发送并在该类中对onsend和onreceive事件响应函数进行了重载
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
15
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
Send函数 Send函数 格式: 格式: virtual int Send ( //待发送的数据缓冲区 const void* lpBuf, //待发送的数据缓冲区 //待发送的数据长度 int nBufLen, //待发送的数据长度 //指明数据发送的工作方式 int nFlags = 0 //指明数据发送的工作方式 );
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
12
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
Receive函数 Receive函数 格式: 格式: virtual int Receive ( //用于存放接收的数据 用于存放接收的数据, void* lpBuf, //用于存放接收的数据,称为接 收缓冲区 //成功接收数据的长度 int nBufLen, //成功接收数据的长度 //指明数据接收方式 int nFlags = 0 //指明数据接收方式 );
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
5
• CAsyncSock类是一个异步套接字类,该类封装 CAsyncSock类是一个异步套接字类, 类是一个异步套接字类
了一些基本的WinSock API函数 函数, 了一些基本的WinSock API函数,提供了与较 底层的Windows套接字的对话接口, Windows套接字的对话接口 底层的Windows套接字的对话接口,一般适用 于有一定基础的网络编程人员使用, 于有一定基础的网络编程人员使用,可以方便地 进行底层的网络事件通知以及信息回叫控制等操 作。其对象既可以工作在“阻塞模式”也可以工 其对象既可以工作在“阻塞模式” 作在“非阻塞模式” 作在“非阻塞模式”。
第 8 MFC MFC MFC MFC
CAsyncSocket类 CAsyncSocket类
7
• CAsyncSocket类的成员函数 CAsyncSocket类的成员函数
AsyncSelect函数 AsyncSelect函数 格式: 格式: BOOL AsyncSelect ( long lEvent = FD_READ | FD_WRITE | FD_OOB | FD_ACCEPT | FD_CONNECT | FD_CLOSE // 事件屏蔽位 );
TCP/IP— TCP/IP—协议分析与应用编程
1
第八章 MFC套接字编程 MFC套接字编程
第 8 MFC MFC MFC MFC
主要内容
2
• CAsyncSocket类 CAsyncSocket类 • 使用CAsyncSocket类编程 使用CAsyncSocket CAsyncSocket类编程 • CSocket类 CSocket类 • 使用CSocket进行网络编程 使用CSocket CSocket进行网络编程
相关文档
最新文档