这是我点击开始工作时后的代码void CSockDlg::OnBconnect() 
{
UpdateData(TRUE);
m_sConnectServerSocket.Create();
         m_sConnectServerSocket.Connect(m_strName,m_iPort);
m_sListenSocket.Create(4000);
m_sListenSocket.Listen();
}
它一方面连接别人,另一方面监听4000端口,程序运行以后,当一个程序通过4000连接他的时候,没错误,可以发送数据,当第二个程序通过4000连接他以后,就直接报错。

解决方案 »

  1.   

    void CSockDlg::OnAccept()
    {
     m_sListenSocket.Accept(m_sConnectSocket);
     }这就是接受连接那部分程序。。我看不出来错误
      

  2.   

    变量m_sConnectSocket接受了一个,再来第二个的时候,再给它接受一个链接当然就不可以了
      

  3.   

    你用的是MFC的CSocket类,那就new一个新的你自己的CSocket派生类对象,然后加到链表中维护。其实还是多线程处理比较好
    SOCKET sConnect;
    m_sListenSocket.Accept(sConnect);
    然后创建新线程,把这个sConnect给它就可以了