首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC开发多线程SOCKET的时分,主线程界面为什么一直是卡住的

2012-09-04 
MFC开发多线程SOCKET的时候,主线程界面为什么一直是卡住的?C/C++ codevoid CTestDlg::OnButton1() {//...I

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的
你这样问不出什么的

热点排行