我写一个服务器端,在文档初始化的时候Listen,然后写客户端连接,第一个连接表示没有问题,但是我再运行一个客户端,却连接不上了闷。
大虾们帮帮忙,先谢了

解决方案 »

  1.   

    要建立2个socket类:CServerSocket专门用于listen,CClientSocket用于真正的通讯。
    在CServerSocket类里可以维护一个CClientSocket的链表,用于控制每一个链接。
    重载CServerSocket::OnAccept函数,让一个CClientSocket去相应
    例如:
    void CServerSocket::OnAccept(int nErrorCode) 
    {
    m_pSocket=new CClientSocket;
    Accept(*m_pSocket);
    Listen();
    m_pSocket->OnInit();
    CSocket::OnAccept(nErrorCode);
    }
      

  2.   

    第二个客户端连不上很正常,因为你可能只listen了一次。
      

  3.   

    duqiang2050(杜杜) 说得对!一个连接由于监听,再用一个连接由于通信。在大部分CSocket编程时都要这样使用!
      

  4.   

    Listen 一次就可以了,不用每连上一个客户端都再去Listen。
    但是注意要提请 FD_CONNECT 消息。