bool UDP::makeSock()
{
sock = socket(AF_INET,SOCK_RAW,IPPROTO_UDP);
if (sock < 0)
{
MessageBox(AfxGetMainWnd()->m_hWnd, ERR_SOCKET_CREATE, MSG_MAIN, MB_ICONERROR );
return FALSE;
} BOOL on = 1;
int ret = setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char *)&on,sizeof(on));
if (ret == SOCKET_ERROR){
MessageBox(AfxGetMainWnd()->m_hWnd, ERR_SOCKET_CREATE, MSG_MAIN, MB_ICONERROR );
return FALSE;
}
sockaddr_in sin;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(8888);
if(bind(sock,(struct sockaddr*)&sin,sizeof sockaddr_in)<0){ //出错
ShowError(GetLastError());
MessageBox(AfxGetMainWnd()->m_hWnd, ERR_SOCKET_BIND, MSG_MAIN, MB_ICONERROR );
return FALSE;
} return TRUE;
}在BIND得时候就会产生错误。错误编号:WSAEADDRNOTAVAIL 。NO.10049我有个可以正常运行的程序,使WINSDK的。现在移植到MFC下,却产生了这个错误由于弄了一天了。脑袋有点混乱了,请求帮忙
{
sock = socket(AF_INET,SOCK_RAW,IPPROTO_UDP);
if (sock < 0)
{
MessageBox(AfxGetMainWnd()->m_hWnd, ERR_SOCKET_CREATE, MSG_MAIN, MB_ICONERROR );
return FALSE;
} BOOL on = 1;
int ret = setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char *)&on,sizeof(on));
if (ret == SOCKET_ERROR){
MessageBox(AfxGetMainWnd()->m_hWnd, ERR_SOCKET_CREATE, MSG_MAIN, MB_ICONERROR );
return FALSE;
}
sockaddr_in sin;
sin.sin_addr.s_addr=INADDR_ANY;
sin.sin_family = AF_INET;
sin.sin_port = htons(8888);
if(bind(sock,(struct sockaddr*)&sin,sizeof sockaddr_in)<0){ //出错
ShowError(GetLastError());
MessageBox(AfxGetMainWnd()->m_hWnd, ERR_SOCKET_BIND, MSG_MAIN, MB_ICONERROR );
return FALSE;
} return TRUE;
}在BIND得时候就会产生错误。错误编号:WSAEADDRNOTAVAIL 。NO.10049我有个可以正常运行的程序,使WINSDK的。现在移植到MFC下,却产生了这个错误由于弄了一天了。脑袋有点混乱了,请求帮忙
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货