class CServerSocket : public CSocket
{
//重载OnClose. 希望被触发,清除vector
//重载OnAccpet. new 一个CClientSocket, 并将该指针放在一个vector中
}
class CClicentSocket : public CSocket
{
//重载OnClose. 销毁对象 (delete this)
//重载OnReceive. 接收数据
}
主函数
{
m_ServerSocket.Create(5000); // 这是一个成员变量
m_ServerSocket.Listen();
...
}
当CClientSocket执行方法Close()后,CClicentSocket.OnClose被触发
但CServerSocket.OnClose并没有被触发,即使执行CServerSocket.Close,CServerSocket.OnClose也没有被触发。
MSDN的意思好象是,一旦连接关闭,Server socket的事件OnClose应该被触发。
为什么就是不触发???????
"Ryan" <the_t...@hotmail.com> 写入消息
news:CDE31EE9-BF5E-443B...@microsoft.com...
"Ryan" <the_t...@hotmail.com> 写入消息
news:CDE31EE9-BF5E-443B...@microsoft.com...
3:有可能是你用错了,你没有在与client连接的套接字上监听消息,你只在accept的套接字上监听消息
我可能说错了,我对mfc不熟悉,还请指教!!
"Jim" <jimz...@voicecyber.com> wrote in message
news:OBEo$V$sIHA...@TK2MSFTNGP05.phx.gbl...
2. 我查了MSDN,CAsyncSocket/CSocket::Close并不需要参数呀!在哪里指定“both”参数?
3. MFC的CSocket类内置CSocketWnd类,他负责将消息转发,我不需要监听,只需要重载OnAccept/OnClsoe/OnReceive即可。
"Jim" <jimz...@voicecyber.com> 写入消息
news:eYy6TjBt...@TK2MSFTNGP05.phx.gbl...
另外你创建的应该是mfc工程吧,这样的话就不需要我说的第一种情况了!
"Jim" <jimz...@voicecyber.com> wrote in message
news:eYy6TjBt...@TK2MSFTNGP05.phx.gbl...
这是我的一点看法,我们可以讨论!
"Jim" <jimz...@voicecyber.com> wrote in message
news:usZL57Jt...@TK2MSFTNGP04.phx.gbl...
欧,确实是我傻了,连接已经被转到CClientSocket中了,所以Client的断开,应该只通知CClient
关于CServerSocket,我想做的是,在停止监听后,做一些清除操作,那应该响应哪个事件?