读懂源码系列-FileZilla Server 设计原则分析-socket 事件处理流程(4)

1.前言

        上一篇讲到 socket 发生 FD_ACCEPT 事件时,处理流程到达辅助窗口的窗口过程。那么 FD_ACCEPT 事件是如何处理的呢?本篇带领大家一探究竟。

2.处理流程

        首先跟踪如下函数:
static LRESULT CALLBACK CAsyncSocketExHelperWindow::WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
void CListenSocket::OnAccept(int nErrorCode)
BOOL CAsyncSocketEx::Accept( CAsyncSocketEx& rConnectedSocket, SOCKADDR* lpSockAddr /*=NULL*/, int* lpSockAddrLen /*=NULL*/ )
void CServerThread::AddSocket(SOCKET sockethandle, bool ssl)
BOOL CThread::PostThreadMessage(UINT message, WPARAM wParam, LPARAM lParam)
int CServerThread::OnThreadMessage(UINT Msg, WPARAM wParam, LPARAM lParam)
void CServerThread::AddNewSocket(SOCKET sockethandle, bool ssl)
        第 1 行的函数,是辅助窗口的窗口过程。当 FTP 服务器的监听端口发生 FD_ACCEPT 事件时,辅助窗口调用 CAsyncSocketEx::OnAccept(int ) 虚函数,但监听 socket 已将该虚函数覆盖。因此,处理流畅来到第 2 行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值