UC故事2011/11/25

本文探讨了网络应用程序启动过程中的UI展示方式,分析了启动后客户端的重要线程及类实例,并详细解释了WSAAsyncSelect的注册过程及其在RtResultCRtReactorWin32AsyncSelect中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 近日做的事

启动过程的UI如何呈现的?

启动完成后,client里出现的重要线程、类实例?

CConfSession为什么会有一个IClientSink的实例(CConfSession本身就是一个IClientSink)?

Q:WSAAsyncSelect是如何被注册的?WSAASyncSelect在哪里调用?

   A:RtResult CRtReactorWin32AsyncSelect::DoAsyncSelect()中完成的。2011/11/27

    if (::WSAAsyncSelect((SOCKET)aFd, m_hwndNotify,WM_WIN32_SOCKET_SELECT, lEvent) != 0) {
        RT_ERROR_TRACE_THIS("CRtReactorWin32AsyncSelect::DoAsyncSelect_i, WSAAsyncSelect() failed!"
            " aFd=" << aFd <<
            " err=" << ::WSAGetLastError());
        return RT_ERROR_UNEXPECTED;
    }

 

2. WSAAsync

* CRTReactorWin32Message实例化STRACK TRACE:

CRtReactorWin32Message::CRtReactorWin32Message() line 153
CRtThreadManager::InitMainThread(int 0, char * * 0x00000000) line 179 + 43 bytes
CRtThreadManager::Instance() line 132 + 15 bytes
RtCoInitialize() line 179 + 5 bytes
ILDebugStart(unsigned short 33201, void * 0x00000001) line 1482
WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f37, int 1) line 83 + 8 bytes
WinMainCRTStartup() line 330 + 54 bytes
KERNEL32! 7c817077()

 

3. Connection

似乎发送与接收用的机制不太一样?

发送用的CConfConnection,接收用什么?

Q:发送与接收使用的port会不会一样?接收通过WSAAsyncSelect,使用了什么port呢?谁指定的? 2011/11/27

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值