用Socket编程,启用线程进行联接为什么会出错?
1.首先派生自己的Socket类,命名Sock
重载消息函数OnSend
void Sock::OnSend(int nErrorCode)
{
// TODO: 在此添加专用代码和/或调用基类
AfxMessageBox("测试");
CSocket::OnSend(nErrorCode);
}
2.在窗口类中添加一线程函数及一全局Sock变量:
Sock sss;
UINT func(LPVOID pLP)
{
Sock* pInfo=(Sock*)pLP;
pInfo->Connect("www.google.com",80); //随便连上一台服务器,只要有消息框弹出就算成功。
return 0;
}
3.在某个按钮函数中:
sss.Create();
AfxBeginThread(func,&sss);
-----------------------------------------------
运行后的结果会出现错误:
sockcore.cpp文件的867行的一个ASSERT错误
该行为:ASSERT(pState->m_hSocketWindow != NULL);