我现在做了个报文收发的软件,在侦听的时候,只能被一个应用程序连接,两个的话会报错,因为接受函数用的是m_sListenSocket.Accept(m_sConnectSocket),现在想改用多线程来做侦听方面,需要能多个程序连接他,并且需要对收到的报文进行简单处理,高手请加qq81927814详谈,或者留下联系方式我联系您。

解决方案 »

  1.   

    [email protected]
    有时间联系我,具体情况说清楚!
      

  2.   


    我给出一部分代码:
    void CListeningSocket::OnAccept(int nErrorCode)
    {
    // TODO: 在此添加专用代码和/或调用基类
    CClientSocket  socket;
    if(Accept(socket))
    {
    CSockThread* pSockThread = (CSockThread*)AfxBeginThread( RUNTIME_CLASS(CSockThread), 
    THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
    pSockThread->m_hSocket = socket.Detach();
    pSockThread->ResumeThread();
    ThreadList.AddTail( pSockThread);
    }
    CSocket::OnAccept(nErrorCode);
    }CSockThread 派生于CWinThread.
    ThreadList是个全局的对象,管理的是CSockThread线程对象的指针
    连接采用的是 同步的CSocket+多线程好像MSDN上有例子,我找找看