15,471
社区成员
发帖
与我相关
我的任务
分享
void CServer_textDlg::OnBnClickedButtonstart()
{
// TODO: 在此添加控件通知处理程序代码
this->UpdateData();
m_pServer = new MServerSocket(this);
if (!m_pServer->Create(70))
{
MessageBox(_T("套接字创建失败"));
delete m_pServer;
m_pServer = NULL;
return;
}
else
{
AfxMessageBox(_T("启动成功"));
}
threadConvert = AfxBeginThread(ThreadConvert, this);//这里
if (!m_pServer->Listen())
MessageBox(_T("监听失败"));
}
这是我原先写的。然后把Accept放在线程里面,连接一个客户端就开启线程,是不是这样的?我自己对线程不太理解,看了不少资料云里雾里的。。现在就是想开启一个客户端就开启一个线程,一一对应,哎。。纠结了。UINT CServer_textDlg::ThreadConvert(LPVOID lParam)
{
CServer_textDlg* textDlg = (CServer_textDlg*)lParam;//定义指针调用
textDlg->AcceptConnect();
return 0;
}
可以帮我调试下吗?我可以发邮件,如果不行的话,帮我讲解下,我新手,日志如何跟踪。。void CServer_textDlg::AcceptConnect()
{
MClientSocket* socket = new MClientSocket(this);
//接受客户端的连接
if (m_pServer->Accept(*socket))
{
m_socketlist.AddTail(socket);
threadConvert = AfxBeginThread(ThreadConvert, this);//这里有问题吧,好像,我客户端申请链接就出错。
}
else
delete socket;
}
错误原因:Debug Assertion Failed!