void CListenSocket::OnAccept(int nErrorCode)
{
CServerSocket* newServerSocket;
newServerSocket = new CServerSocket;
if(Accept(*newServerSocket))
{
//处理代码!
}
CAsyncSocket::OnAccept(nErrorCode);
}
************************************************
void CListenSocket::OnAccept(int nErrorCode)
{
CServerSocket newServerSocket;
if(Accept(newServerSocket))
{
//处理代码!
}
CAsyncSocket::OnAccept(nErrorCode);
为什么按照上面的就可以正常运行!
按照下面的程序,客户端就无法连接阿!一连接及自动断开!
{
CServerSocket* newServerSocket;
newServerSocket = new CServerSocket;
if(Accept(*newServerSocket))
{
//处理代码!
}
CAsyncSocket::OnAccept(nErrorCode);
}
************************************************
void CListenSocket::OnAccept(int nErrorCode)
{
CServerSocket newServerSocket;
if(Accept(newServerSocket))
{
//处理代码!
}
CAsyncSocket::OnAccept(nErrorCode);
为什么按照上面的就可以正常运行!
按照下面的程序,客户端就无法连接阿!一连接及自动断开!
是在函数内申明的
那么在这个函数执行完后
它的生命期就到了
就没有了你改成
static CServerSocket newServerSocket;
试
不过CServerSocket* newServerSocket;也在函数内部声明阿!~
这个就没有生命期吗???
这是new出来的对象啊,属于全局对象,你需要保存这个对象指针,
我觉得你应该好好看看 变量的生存期及 C语言中的指针!