incompatible types when assigning to type ‘struct in_addr’ from type ‘in_addr_t {aka unsigned int}’ servaddr.sin_addr = inet_addr(argv[1]);
时间: 2023-06-11 22:09:56 浏览: 362
Genymotion-ARM-Translation
这个错误是因为您在给 `servaddr.sin_addr` 赋值时使用了错误的类型。`servaddr.sin_addr` 的类型是 `struct in_addr`,而 `inet_addr` 函数返回的是 `in_addr_t` 类型,它是 `unsigned int` 的别名。
要解决这个错误,您需要将 `inet_addr` 的返回值转换为 `struct in_addr` 类型。您可以使用 `inet_aton` 函数,它将 IP 地址转换为 `struct in_addr` 类型。例如:
```
struct in_addr addr;
if (inet_aton(argv[1], &addr) == 0) {
// 处理转换错误
}
servaddr.sin_addr = addr;
```
另外,`inet_aton` 的返回值为 0 表示转换失败,为非零值表示转换成功。
阅读全文