网络聊天室(5)
发布时间:2021-06-06
发布时间:2021-06-06
这是一个利用Visual C++ 6.0和MFC相结合做成的简单的网络聊天室系统。
2.2 MFC类CAsyncsocket和CSocket
(1)构造一个 CAsyncSocket 对象并使用该对象创建基础 SOCKET 句柄。 套接字的创建遵循两阶段构造的 MFC 模式。 例如:
CAsyncSocket sock;sock.Create( ); // Use the default parameters 或 CAsyncSocket* pSocket = new CAsyncSocket;int nPort = 27;pSocket-> Create( nPort, SOCK_DGRAM );
上面的第一个构造函数在堆栈上创建一个 CAsyncSocket 对象,第二个构造函数在堆上创建 CAsyncSocket 。上面的第一个 Create 调用使用默认参数创建流式套接字,第二个 Create 调用创建具有指定端口和地址的数据文报套接字。(任一个 Create 版本都可以和任一种构造方法一起使用。) Create 的参数有:
端口:短整型。对于服务器套接字,必须指定端口。对于客户端套接字,通常接受此参数的默认值,该值允许 Windows Sockets 选择端口。 套接字类型: SOCK_STREAM (默认值)或 SOCK_DGRAM 。
套接字“地址”,如“”或“222.244.166.21”。 该地址为网络上的网际协议 (IP) 地址。很可能要始终依赖此参数的默认值。
如果套接字是客户端,则使用 CAsyncSocket::Connect 将此套接字对象连接到服务器套接字。
如果套接字是服务器,则将套接字设置为开始侦听(使用 CAsyncSocket::Listen)来自客户端的连接尝试。接收到连接请求时,用 CAsyncSocket::Accept 接受该请求。 接受连接后,可以执行验证密码等任务。
注意 Accept 成员函数采用对新的空 CSocket 对象的引用作为它的参数。在调用 Accept 之前,必须构造该对象。如果此套接字对象超出范围,则连接关闭。不要对这个新套接字对象调用 Create 。有关示例,请参见文章 Windows Sockets:操作顺序。 通过调用 CAsyncSocket 对象的封装 Windows Sockets API 函数的成员函数,与其他套接字进行通信。
下一篇:小学五年级数学第一单元测试卷