谢谢
BOOL CSocketEx::CreateServer()
{
BOOL Result = FALSE;
sockaddr_in vSockaddr;
vSockaddr.sin_family = AF_INET;
vSockaddr.sin_addr.s_addr = inet_addr(m_StrHostIP);
vSockaddr.sin_port = htons((u_short)m_iPort);
int Len = sizeof(sockaddr_in); memmove(vSockaddr.sin_zero, &Len, 8); switch (m_iDataType)
{
case 0://流套接字
// m_sSocket = socket();
if ((Result=Create(m_iPort)))
{
if (bind(m_sSocket, (sockaddr *)&vSockaddr, Len) == SOCKET_ERROR)
{
::MessageBox(NULL, "绑定IP地址失败!", "警告", MB_OK | MB_ICONWARNING);
     return FALSE;
}
Listen();
}
break;
case 1://数据报套接字
Result = Create(m_iPort, SOCK_DGRAM);
break;
default:
break;
} return Result;
} 绑定出错弹出对话框。

解决方案 »

  1.   

    memmove(vSockaddr.sin_zero, &Len, 8);
      

  2.   

    不要 memmove(vSockaddr.sin_zero, &Len, 8);
    或改成 memset(vSockaddr.sin_zero, 0, 8);
      

  3.   

    那多半是m_StrHostIP或m_iPort错了。m_StrHostIP必须是本机的有效IP, 你可以用127.0.0.1测试。
      

  4.   

    ::MessageBox(NULL, "绑定IP地址失败!", "警告", MB_OK | MB_ICONWARNING);
    说得不好听,这句话真是白写了。你最好把出错代码得出来。