5 I CasyncSocket类P110 CASyncSocket类从 Cobject类派生而来,如下图所示 cobject CAsyncSocket 使用 CAsyncSocket类进行网络编程,方便处理各种网络 事件,方便构造用户界面,具有较大的灵活性
CAsyncSocket类从Cobject类派生而来,如下图所示: 5.1 CasyncSocket类 P110 使用CAsyncSocket类进行网络编程,方便处理各种网络 事件,方便构造用户界面,具有较大的灵活性
5.1.1使用 CAsyncSocke类的一般步骤P110 网络应用程序一般采用客户服务器模式,它们使用 CAsyncSocket类编程的 步骤有所不同,参表51 序号 服务器( Server) 客户机( Client) //构造一个套接字 //构造一个套接字 CAsyncSocket sock Srvr; CAsync Socket sockClient //刨建 SOCKET句柄,绑定到指定的端口|//刨建 SOCKET旬柄,使用默认参数 sockSrvr. Create(nPort) sockClient. Create 3 //启动监听,时刻准备接受连接请求 sockSrvr. Listen(; //请求连接到服务器 sockClient. Connect(strAddr npor //构造一个新的空的套接字 CAsyncSocket sockRecv //接收连接请求 sockSrvr. Accept( ockRecv) //接收数据 //发送数据 sockRecv. Receive(pBuf, nLen) sockClient. Send(pBuf, nLen 7 //发送数据 //接收数据 sockRecv. Send(pBuf, nLen sockClient. ReceivelpBuf, nLen) 8 //关闭套接字对象 //关闭套接字对象 sockRecv. Close sockClient. Close()
网络应用程序一般采用客户/服务器模式,它们使用CAsyncSocket类编程的 步骤有所不同,参表5.1。 5.1.1 使用CAsyncSocket类的一般步骤 P110 序 号 服务器(Server) 客户机(Client) 1 //构造一个套接字 CAsyncSocket sockSrvr; //构造一个套接字 CAsyncSocket sockClient; 2 //创建SOCKET句柄,绑定到指定的端口 sockSrvr.Create(nPort); //创建SOCKET句柄,使用默认参数 sockClient.Create( ); 3 //启动监听,时刻准备接受连接请求 sockSrvr.Listen( ); 4 //请求连接到服务器 sockClient.Connect(strAddr, nport); 5 //构造一个新的空的套接字CAsyncSocket sockRecv; //接收连接请求sockSrvr.Accept(sockRecv); 6 //接收数据 sockRecv.Receive(pBuf, nLen); //发送数据 sockClient.Send(pBuf, nLen); 7 //发送数据 sockRecv. Send(pBuf, nLen); //接收数据 sockClient.Receive(pBuf, nLen); 8 //关闭套接字对象 sockRecv.Close( ); //关闭套接字对象 sockClient.Close( );
5.1.1使用 CAsyncSocket类的一般步骤P110 (1)客户机与服务器端都要首先构建一个 CASyncSocke对象, 然后使用该对象的 Creat成员函数来创建底层的 SOCKET句柄。 服务器端一定要绑定到特定的端口 2)服务器端的套接字对象应使用 CAsyncSocket: Listen成员 函数启动监听,当收到来自客户端的连接请求,就调用 CASyncSocket: Accept成员函数来接收,此时建立一个新的空 的 CAsyncSocket对象用于数据交换;客户端的套接字对象应使 用 CASyncSocket: Connect成员函数连接到服务器的套接字对象。 连接建立以后,双方可以进行数据交换。 (3)调用 CAsyncSocket的Send和 Receive对象与通信对方交换 数据。这些成员函数与 Windows socket api用法基本相同。 (4)关闭并销毁 CAsyncSocket对象
(1)客户机与服务器端都要首先构建一个CAsyncSocket对象, 然后使用该对象的Creaet成员函数来创建底层的SOCKET句柄。 服务器端一定要绑定到特定的端口。 (2)服务器端的套接字对象应使用CAsyncSocket::Listen成员 函数启动监听,当收到来自客户端的连接请求,就调用 CAsyncSocket::Accept成员函数来接收,此时建立一个新的空 的CAsyncSocket 对象用于数据交换;客户端的套接字对象应使 用CAsyncSocket::Connect成员函数连接到服务器的套接字对象。 连接建立以后,双方可以进行数据交换。 (3) 调用CAsyncSocket的Send和Receive对象与通信对方交换 数据。这些成员函数与Windows Socket API用法基本相同。 (4)关闭并销毁CAsyncSocket对象。 5.1.1 使用CAsyncSocket类的一般步骤 P110
5.1.1使用 CAsyncSocket类的一般步骤P110 使用 CASyncSocket类进行网络编程,具有较大的灵活性, 但编程者必须解决好以下3个问题: (1)阻塞问题。 CAsyncSocket类不支持阻塞工作模式。 (2)字节顺序的转换。用户程序需要自己对不同的字节进 行转换。 (3)字符串转换。用户程序需要自己解决如 Unicode和 multibyte set字符串之间的转换
使用CAsyncSocket类进行网络编程,具有较大的灵活性, 但编程者必须解决好以下3个问题: (1)阻塞问题。CAsyncSocket类不支持阻塞工作模式。 (2)字节顺序的转换。用户程序需要自己对不同的字节进 行转换。 (3)字符串转换。用户程序需要自己解决如Unicode和 multibyte set字符串之间的转换。 5.1.1 使用CAsyncSocket类的一般步骤 P110
5.12创建 CAsyncSocket类对象P111 这里将 CAsyncSocket类对象称为异步套接字对象。创建异 步套接字对象一般分为两个步骤,首先构造一个 CAsyncSocket 对象,再创建该对象的底层的 SOCKET句柄。 1.创建空的异步套接字对象 通过调用 CAsyncSocket类的构造函数,创建一个新的空 CASyncSocket类套接字对象,构造函数不带参数。然后必须调 用它的 Create成员函数,来创建底层的套接字数据结构,并绑 定它的地址
这里将CAsyncSocket类对象称为异步套接字对象。创建异 步套接字对象一般分为两个步骤,首先构造一个CAsyncSocket 对象,再创建该对象的底层的SOCKET句柄。 1.创建空的异步套接字对象 通过调用CAsyncSocket类的构造函数,创建一个新的空 CAsyncSocket类套接字对象,构造函数不带参数。然后必须调 用它的Create成员函数,来创建底层的套接字数据结构,并绑 定它的地址。 5.1.2 创建CAsyncSocket类对象 P111