一个最简单的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.说是提供了无效的参数,也不知道哪里错了求大神帮帮忙