-1

我正在使用 winsock2.h 并尝试初始化 sockaddr_in 对象的 sin_addr。

sockaddr_in addr;
addr.sin_addr = INADDR_ANY; // ERROR C2679 there is no assignment operator
addr.sin_addr = inet_addr("0.0.0.0"); // Also ERROR C2679 

为什么?每个教程都说要这样做,为什么这不起作用?如何初始化它?

4

1 回答 1

3

inet_addr返回一个类型的值,in_addr_t它基本上是一个普通的整数值。

sin_addr成员是 a ,与(尽管名称相似)struct in_addr不兼容。in_addr_t

但是struct in_Addr有一个s_addr成员可以分配给:

addr.sin_addr.s_addr = inet_addr(...);

如果您检查示例和教程有点接近,那么我敢打赌这就是您将看到的。

于 2021-06-23T12:00:10.973 回答