WSAEAFNOSUPPORT 错误是咋回事啊?
void CTopSendDlg::OnConnect()
{
CString szHostAddress;
CIPAddressCtrl *pHostAddress;
DWORD dwIP;
pHostAddress = (CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS);
int nField = pHostAddress->GetAddress(dwIP);
if(nField==4)
{
((CButton *)GetDlgItem(IDC_CONNECT))->EnableWindow(FALSE);
SOCKADDR_IN addrHost;
addrHost.sin_family = AF_INET;
BYTE *pIPAddress = (BYTE *)&dwIP;
szHostAddress.Format("%d.%d.%d.%d",*(pIPAddress+3),*(pIPAddress+2),*(pIPAddress+1),*(pIPAddress));
addrHost.sin_addr.S_un.S_addr = inet_addr(szHostAddress);
addrHost.sin_port = htons(HOST_PORT);
g_bConnect = FALSE;
::CreateThread(NULL,0,ConnectThread,(LPVOID)&addrHost,0,NULL);
SetTimer(CONNECT_TIMER,ELAPSE_TIME,NULL);
}
else if(nField==0)
{
AfxMessageBox("你还没有输入服务器地址!");
}
else
{
AfxMessageBox("请输入完整的服务器地址!");
}
}
DWORD WINAPI ConnectThread(LPVOID lpParameter)
{
SOCKADDR_IN *pHostAddr = (SOCKADDR_IN *)lpParameter;
SOCKET sockConnect = socket(AF_INET,SOCK_STREAM,0);
if(sockConnect==INVALID_SOCKET)
{
AfxMessageBox("创建连接套接字失败!");
return -1;
}
if(connect(sockConnect,(SOCKADDR *)pHostAddr,sizeof(SOCKADDR_IN))==SOCKET_ERROR)
{
AfxMessageBox("test");
}
else
{
g_bConnect = TRUE;
}
closesocket(sockConnect);
return 0;
}
第一次启动连接的时候没有问题,第二次连接就出现了10047错误,请问这是为什么啊?