ipv6套接字绑定错误,求大神......

zhcosin zhcosin 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

#include<stdio.h>
#include<winsock2.h>
#include<ws2tcpip.h>

//在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库
#pragma comment(lib, "WS2_32.LIB")

int main(int argc, char* argv[])
{
WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD(1, 1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0) {
printf("WSAStartup failed.\n");
system("pause");
return -1;
}

if (LOBYTE(wsaData.wVersion) != 1||
HIBYTE(wsaData.wVersion) != 1) {
WSACleanup();
printf("LOBYTE or HIBYTE failed.\n");
system("pause");
return -2;
}

//创建套接字//
addrinfo hints;
addrinfo *res;
memset(&hints, 0, sizeof(hints));
hints.ai_family=AF_INET6;
//hints.ai_family = PF_INET6;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
hints.ai_flags = AI_NUMERICHOST;
getaddrinfo("fe80::706d:5cb0:fcac:7141", "7999", &hints, &res);
//getaddrinfo(NULL, "8700", &hints, &res);
SOCKET s;
s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if(s == INVALID_SOCKET)
{
WSACleanup();
printf("Create socket failed.\n");
system("pause");
return -3;
}

//绑定套接口
err = bind(s, res->ai_addr, res->ai_addrlen);
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Bind socket failed.\n");
system("pause");
return -4;
}

//发送消息
char buf[]="Hello, my name is zhcosin.";
err = sendto(s, buf, strlen(buf), 0, res->ai_addr, res->ai_addrlen);
if(err == SOCKET_ERROR)
{
WSACleanup();
printf("Send failed.\n");
system("pause");
return -5;
}

closesocket(s);

system("pause");
}

编译没问题,运行的时候进入到了套接字绑定错误处理的那部分代码了,求帮助啊
运行输出如下:
Bind socket failed.
Press any key to continue......
...全文
评论 15
收藏 已收藏
分享
返回顶部
zhcosin
C语言 70,039 成员 243,237 内容