MFC CAsynocSocket的用法

MFC CAsynocSocket的用法这几天都在研么 MFC 的套接字类 CAsyncSocket 的用法 将一些心得和实践中遇到的问题总结一下 一 一些网络的基本概念 1 同步 发送方发出数据后 等接收方发回响应以后才发下一个数据包的通讯方式 2 异步 发送方发出数据后 不等接收方发回响应

大家好,我是讯享网,很高兴认识大家。

这几天都在研么MFC的套接字类CAsyncSocket的用法, 将一些心得和实践中遇到的问题总结一下。

 

一、        一些网络的基本概念

1.       同步:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

2.       异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

3.       阻塞:指调用某函数时,直到该函数完成操作,才返回;否则一直阻塞在该调用上

4.       非阻塞:指调用某操作时,不管操作是否成功都立即返回,而不会挂在该操作上


讯享网

 

CAsyncSocket属于异步非阻塞类;

CSocket是MFC在CAsyncSocket基础上派生的一个同步阻塞Socket的封装类

 

二、       CAsyncSocket的使用(伪码)

服务器端:

 

m_pListSocket    =     new    CAsyncSocket(); 
m_pListSocket
->  Create( 端口,地址);                    //  创建

m_pListSocket
-> Listen();                             //  开始监听

 

m_pListSocket::OnAccept( )                       
//  有客户端请求连接时响应

{

m_pSocket   
=   new   CAsyncSocket(); 
m_pListSocket
-> Accept(m_pSocket);       // 建立通信,成功后m_pSocket就用于发送和接受.

 

// m_pSocket 就相当于连接的那个客户端了

}


 

m_pSocket::OnRecive( 
int  nErrorCode)

{

         
if( nErrorCode == 0)

{

         Recevie();                            
// 接受客户端发送来的信息

}


         CAsyncSocket::OnRecive( nErrorCode)

}


 

m_pSocket::OnSend()

{

         Send();                        
// 发送信息,该事件触发条件见下节

}


 

m_pListSocket
-> Close();

 

delete m_pListSocket;

delete m_pSocket;

小讯
上一篇 2025-03-04 21:49
下一篇 2025-01-06 15:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/74222.html