首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setsockopt错误WSAEADDRNOTAVAIL

setsockopt错误WSAEADDRNOTAVAIL
EN

Stack Overflow用户
提问于 2012-11-26 04:26:03
回答 1查看 1.9K关注 0票数 0

来源:

代码语言:javascript
复制
WSADATA WSAData; 
SOCKET sock;
if (WSAStartup(MAKEWORD(2,2), &WSAData)!=0) {
    printf("\nProblem with WSAStartup\n\n");
    return FALSE; 
}
if ((sock = WSASocket(AF_INET,SOCK_RAW,IPPROTO_TCP, 0, 0, WSA_FLAG_OVERLAPPED)) == INVALID_SOCKET) {
    WSACleanup();
    printf("\nProblem with WSASocket\n\n");
    return FALSE;
}
int flag = 1;
if (setsockopt(sock,IPPROTO_IP, IP_HDRINCL,(char *)&flag,sizeof(flag)) == SOCKET_ERROR) {
    printf("getsockopt failed with error: %u\n\n", WSAGetLastError());
    closesocket(sock);
    WSACleanup();
    return FALSE; 
}

每次我在我的程序中运行这段代码时,我都会得到:

代码语言:javascript
复制
getsockopt failed with error: 10049

10049是WSAEADDRNOTAVAIL的错误代码,这意味着“请求的地址在其上下文中无效”。

请帮帮忙,我不知道为什么我一直收到这个错误。

EN

回答 1

Stack Overflow用户

发布于 2012-11-26 06:16:41

您在对WSASocket()的调用中指定了无效的协议,请尝试将IPPROTO_TCP指定为:

代码语言:javascript
复制
WSASocket(AF_INET,SOCK_RAW,IPPROTO_TCP, 0, 0, WSA_FLAG_OVERLAPPED)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13555147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档