gpt4 book ai didi

c - bind() 失败,Windows 套接字错误 10049

转载 作者:可可西里 更新时间:2023-11-01 09:40:52 26 4
gpt4 key购买 nike

我尝试用 C 使用 IPv6 和 UDP 编写一个客户端/服务器程序。当程序绑定(bind)套接字时,它返回 WSAError 10049。我知道这是地址名称的问题,但看不出是什么问题。我希望有人能提供帮助。

struct sockaddr_in6 server, client;
SOCKET sock;
char buffer[BUFFERSIZE];
LPTSTR recvBuff[1024];
DWORD recvBuffLen = 1024UL;
int len = sizeof(client);

WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(1,1);
WSAStartup(wVersionRequested, &wsaData);

sock = socket(AF_INET6, SOCK_DGRAM, 0);
if (sock < 0)
error("Fehler beim Anlegen des Sockets");

server.sin6_family = AF_INET6;
server.sin6_port = htons(6000);
server.sin6_addr = in6addr_any;

if (bind(sock, (struct sockaddr *) &server, sizeof(server)) == -1)
error("Fehler beim binden des Sockets");

最佳答案

This normally results from an attempt to bind to an address that is not valid for the local computer. .

你应该在这里使用 PF_INET 而不是 AF_INET。它们具有相同的值,但您没有在此处指定地址系列 AF,而是指定协议(protocol)系列 PF。这只是一个风格推荐。

我建议将memset 归零以下数组、结构:

struct sockaddr_in6 server, client;
SOCKET sock;
char buffer[BUFFERSIZE];
LPTSTR recvBuff[1024];

关于c - bind() 失败,Windows 套接字错误 10049,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14366048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com