你用的函数是阻塞函数,它要一直监听直到有连接请求,
你的程序阻塞应该在Accpet()函数,它会在有请求时用它的一个参数(一个没有初始化的,才创建的CStocket对象)和客户进行连接通信。

解决方案 »

  1.   

    1、使用异步SOCKET,多次 ACCEPT
    2、使用多线程
      

  2.   

    CSocket本来就是异步的。
    最好不要直接使用CSocket,从CSocket派生一个新类,重载OnAccept, OnReceive方法
      

  3.   

    <windows 网络编程技术> 机械工业出版社,上面写得非常详细
      

  4.   

    class CListenSocket :public CSocket;
    class CClientSocket :public CSocket;CListenSocket m_ListenSocket;
    m_ListenSocket.Create(8000);
    m_ListenSocket.Listen();ON_MESSAGE(OnAccept,UM_ACCEPT);CListenSocket::OnAccpet(..)
    {
      SendMessage(g_hMainhWnd,UM_ACCPET,0,0);
    }CTestDialog::OnAccept(...)
    {
         CClientSocket    *p;
         p = new CClientSocket;
         m_ListenSocket.Accept(*p);
         //将p储存到连接池中    
    }CClientSocket::OnReceive(...)
    {
        //接收
        recv(....);
        //处理代码...
        //发送
        send(...);
        //如果用线程..次处必须激活处理线程.}
    有时间跟你写一个吧.留个mial.
      

  5.   

    to logincao:
    谢谢!我的E-mail:[email protected]
    to everyone:
    非常感谢大家的热情帮助
      

  6.   

    谢谢楼上孤独大侠!
    我也孤独二十有五年了,等你好消息![email protected]
      

  7.   

    偶也想知道的
    [email protected]