我要CDialog下启动SOCKET监听后程序能正常通信,但程序的界面却死了,都不能点任务控件了。程序的界面也不能正常显示
是怎么问题?怎么解决?  
SOCKET通信 我是自己写了一个类。程序一起用SOCKET就出问题了。

解决方案 »

  1.   

    请问 
    你们的SOCKET类一般是怎么写的?能否提供做参考。
    第一次写C++的程序请多帮助
      

  2.   

    不懂  SOCKET通信 
    不过界面死掉的话  最好把这些功能操作放到线程里。。
      

  3.   

    socket监听放在另一个线程中完成。或者SetTimer。
      

  4.   

    代码如下  我是用 原始的SOCKET 写的
    要怎么改啊。  如果用SetTimer 程序要怎么改?
    while(!kbhit())  //while(true) 
    {//阻塞方法,获得一个客户Socket连接  
            SOCKET ClientSock = accept(m_listenSocket,(sockaddr*)&addrClient,&len);    if( ClientSock == INVALID_SOCKET )   //无客户访问
            {
                std::cout<<"接收错误\n";
                m_Err = WSAGetLastError();
            }
            else
            {
    try
    {
                    //有客户连接请求被成功接受
                    char buf[102400];
                    memset( buf, 0, sizeof(char)*102400 );
                    //接收客户端传输过来的数据
                    int count = recv( ClientSock, buf, 102400, MSG_PEEK );
                    if( count>=8 )
        {//printf( "服务器已经接收 %d 个字符:%s", n, buf );
        DecodeBuf(buf,count, ClientSock);
        }
    }catch(...){}
                    
           } //char sendbuffer[1024];   
    ////sprintf(sendbuffer,"Welcom %s!",inet_ntoa(addrClient.sin_addr));  
    ////向客户Socket发送数据   
    //send(sockConn,sendbuffer,strlen(sendbuffer)+1,0);   
    //char recvbuffer[128];   
    ////从客户Soc接受数据  
    //recv(sockConn,recvbuffer,128,0);   
    //printf("%s\n",recvbuffer);   
    ////关闭Socket   
    //closesocket(sockConn); 
    }
      

  5.   

    CreateThread(...)或AfxBeginThread(...)
    在线程函数里监听。