MFC开发多线程SOCKET的时候,主线程界面为什么一直是卡住的?
- C/C++ code
void CTestDlg::OnButton1() {//...Initial socketUINT ThreadFunc(LPVOID);while (true) { m_ClientList[m_connCount] = accept(serverSocket,(SOCKADDR*)&clientsocket,&len); AfxBeginThread(ThreadFunc, (LPVOID)m_ClientList[m_connCount],THREAD_PRIORITY_NORMAL); m_connCount++; }}UINT ThreadFunc(LPVOID pParam){ SOCKET clientS=(SOCKET)(LPVOID)pParam; char text[BUFSIZ]={0}; while(recv(clientS, text, BUFSIZ, 0) != NULL) { AfxMessageBox(text); } return 0;}现在的效果是第一个客户端发送的消息服务端可以收到,但是只有弹出提示框的声音,没有显示出来,而且主页面一直是卡住的..第二个客户端就连接不了了.
[解决办法]
while 没跳出来啊
[解决办法]
。。。死循环,不断创建线程,不卡还怪的。。。
[解决办法]
accept 是阻塞函数
[解决办法]
[解决办法]
先找些例子看看,多线程+界面+socket的
你这样问不出什么的