#include <afxsock.h>
...
{
AfxSocketInit();
CSocket a;
a.Create();
}
...
这个一段代码,在MFC的对话框程序运行没有问题
但是,在win32程序中使用它时,编译时通过,运行时却提示说assert failed请问这是什么原因造成的?有没有办法可以解决啊。谢谢

解决方案 »

  1.   

    win32时最好使用:sockaddr_in addr;
    WSADATA     WSAData;if(WSAStartup(0x0101,&WSAData))
    {
    Message("初始化网络失败!","错误");
    return FALSE;
    }if(WSAData.wVersion<0x0101)
    {
    WSACleanup();
    Message("SOCKET版本太低!","错误");
    return FALSE;
    }
    Message("初始化网络成功!","信息");

    m_sSock = socket(AF_INET,SOCK_STREAM,0);
    if(m_sSock == INVALID_SOCKET)
    {
    m_nSocketErr = WSAGetLastError();
    Message("不能建立套接字!","错误");
    return FALSE;
    }addr.sin_family = AF_INET;
    addr.sin_port = htons(wPort);
    if((szIPAddr==NULL)||(strcmp(szIPAddr,"")==0))
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    else
    addr.sin_addr.s_addr = inet_addr(szIPAddr);if(bind(m_sSock,(LPSOCKADDR)&addr,sizeof(addr)) == SOCKET_ERROR)
    {
    m_nSocketErr = WSAGetLastError();
    closesocket(m_sSock);
    Message("不能进行绑定!","错误");
    return FALSE;
    }
    ...