我刚学到网络编程部分,在服务端程序的运行之下,其他代码也写好了,击button,驱动下面的函数,我调试时,就是 m_sock.AsyncSelect(FD_WRITE);一句过不去,请大家帮我分析
void CClientDlg::OnSendNetMsg() 
{      m_sock.Create(4444,SOCK_STREAM,FD_ACCEPT);       //m_sock.Create();       m_sock.Connect("172.20.3.32",4444);       m_sock.AsyncSelect(FD_WRITE);//提请一个发送操作,向服务器发送数据
}

解决方案 »

  1.   

    服务器端还没有监听 Listen(1);而且在流式套接字中,connect()是客户端发出连接请求用的。建议你把面向连接套接字的系统调用时序再研究一下。
      

  2.   

    谢谢你回复,
      
    void CSeverDlg::OnForListen() 
    {  
       //m_sock.Create();
       m_sock.Create(4444,SOCK_STREAM,FD_ACCEPT);   //创建在本机ip上1234端口的tcp连接用于侦听。
       
       m_sock.Listen(1);//开始侦听。
    }
    这个函数已经由一个button激过,才运行客户端的CClientDlg::OnSendNetMsg() 
      

  3.   

    你connect后要accept,然后再select