在线等500分求救:谁先解决全给他。监听套接字在运行较长时间后accept出现错误
kkbws 2005-12-04 02:22:36 /**********************救命啊******************/
我用CAsyncSocket做了一个C/S单服务器多客户端程序;但当监听时间较长后客户端连接服务端就会失败,跟踪发现accept函数执行时出现10038错误。查表发现:
〖10038〗-在一个非套接字上尝试了一个操作。怎么弄也不明白,我的程序很清晰啊。代码如下
CMySocket ListenSocket;
ListenSocket.Create(6000);
ListenSocket.Listen();
void CMySocket::OnAccept(int nErrorCode)
{
CMySocket *TcpLink=new CMySocket(this);
if(!TcpLink)
return;
if(Accept(*TcpLink))
{
TcpLink->pr.CreateInstance(_uuidof(Recordset));
}
else
{
delete TcpLink;
m_pwnd->m_edit4.Format("%d",m_pwnd->FailAccept);
nErrorCode=GetLastError();
CString errormessage;
errormessage.Format("连接错误=%d",nErrorCode);
WriteLog("\n");
WriteLog(errormessage);
AfxMessageBox(errormessage);
}
CAsyncSocket::OnAccept(nErrorCode);
}