2 dagger003 dagger003 于 2014.03.19 17:40 提问

MFC中Bind()总返回10022

一个最简单的tcp服务器端,关键代码如下

CDialog::OnInitDialog();
// TODO: Add extra initialization here
CSocket sockListen;
SOCKADDR_IN serverAddr;
serverAddr.sin_family=AF_INET;
serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1");
serverAddr.sin_port=htons(5802);

if(!sockListen.Create(5802))
{
    char szError[256] = {0};
    sprintf(szError, "create Faild: %d", GetLastError());
    AfxMessageBox(szError);
    return 1; 

}
if (!sockListen.Bind(5802,"127.0.0.1"))
    //或者用这种Bind方法
//if (!sockListen.Bind((SOCKADDR *)&serverAddr,sizeof(serverAddr)))
{
    char szError[256] = {0};
    sprintf(szError, "Bind Faild: %d", GetLastError());
    AfxMessageBox(szError);
    sockListen.Close();
    return 1; 
}

两种Bind方法都显示10022错误,Socket not bound, invalid address or listen is not invoked prior to accept.说是提供了无效的参数,也不知道哪里错了求大神帮帮忙

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!