我从CSock派生了一个类,之后在程序中声明了这个类的一个变量m_server,
之后我用了
if (!(m_server.Create(9000,SOCK_STREAM,NULL)))
{
AfxMessageBox("create fail");
}
为什么创建总是不成功?我在程序中包含了类的头文件,也包含了Afxsock.h
谁能告诉我这是为什么?

解决方案 »

  1.   

    你把它改成:
    if (!(m_server.Create(9000))
    {
    AfxMessageBox("create fail");
    }
    试试,如果不行,检查一下端口9000是否被占用。
      

  2.   

    1.m_server不能是一个实体变量,只能是指针!因为socket的编程环境未初始化之前,socket不可能初始化!而这一过程是在程序运行时才进行的。请看CMyApp::InitInstance()中的socket初始化函数。
    2.用下列方法产生:
    CMySocket *m_pSocket;// member variable;
    .
    .
    m_pSocket=new CMySocket;
    m_pSocket->Create(9000);
    m_pSocket->Listen()// ->Connect(..);
    .
    .
      

  3.   

    我是忘了调用AfxSocketInit()
    了,所以出现了上面的问题
    谢谢你们!