- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,IPv6环回是::1
。所以当我尝试这个时:
//includes of all needed headers in one place
#include <include.h>
#define BACKLOG 10
int main(int argc, char const *argv[])
{
if (argc != 2)
{
die("Usage: %s <port>\n", argv[0]);
}
int port = atoi(argv[1]);
int numOfClient = 0;
int sockfd = socket(AF_INET6, SOCK_STREAM, 0);
struct sockaddr_in servaddr;
servaddr.sin_family = AF_INET6;
servaddr.sin_addr.s_addr = INADDR_ANY;
servaddr.sin_port = htons(port);
if (bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0)
{
perror("bind");
}
else
{
printf("[+]bind\n");
}
if (listen(sockfd, BACKLOG) < 0)
{
perror("listen");
}
else
{
printf("[+]listening\n");
}
while (1)
{
int client_sockfd = accept(sockfd, NULL, NULL);
time_t now = time(NULL);
char *time_fmt = ctime(&now);
numOfClient++;
printf("client %d requested for time at %s\n", numOfClient, time_fmt);
if (write(client_sockfd, time_fmt, strlen(time_fmt) + 1) < 0)
{
die("died: write to client_sockfd\n");
}
}
return 0;
}
并尝试将其运行为:
$ # run with random port 4444
$ ./server6 4444
bind: Invalid argument
[+]listening
IF_INET
套接字没有问题,但 IF_INET6
似乎存在某种问题。它可能是什么?
最佳答案
您使用了错误的 sockaddr 结构类型。对于 IPv6,您需要使用 struct sockaddr_in6
。
struct sockaddr_in6 servaddr = { .sin6_family = AF_INET6,
.sin6_addr = IN6ADDR_ANY_INIT,
.sin6_port = htons(port));
或者:
struct sockaddr_in6 servaddr = {0};
servaddr.sin6_family = AF_INET6;
servaddr.sin6_addr = in6addr_any;
servaddr.sin6_port = htons(port);
关于c - 绑定(bind): invalid argument when trying to bind AF_INET6 to INADDR_ANY (to localhost),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65495739/
我正在开始套接字编程,并且我不断看到这个 AF_INET。 但是,我从未见过任何其他东西可以代替它。我的讲师没有那么有帮助,只是说“你只是需要它”。 所以我的问题: AF_INET 的用途是什么? 是
我想编写一个可用于大量 AF_INET-SOCK_STREAM 和 AF_INET-SOCK_DGRAM 套接字的守护进程,用于网络调试。 为了避免过度使用资源,我想避免在应用层打开大量端口,但尝试在
查看有关套接字编程的示例,我们可以看到有些人使用AF_INET,而其他人使用PF_INET。此外,有时 both of them are used at the same example 。问题是:它
代码运行正常,现在显示错误 AttributeError: 模块 'socket' 没有属性 'AF_INET' 代码如下:模块名不是socket.py import socket client= s
因此,我在三个位置安装了python:Windows计算机,Pi(运行Kali)和Mac。当导入套接字库或依赖于套接字库的库(即ipwhois)时,我的Mac是唯一出现此错误的计算机。我在sudo中运
我有这个简短的程序: import sys import socket target = "google.co.uk" port = 443 print(target) s = socket.sock
用C语言对Android进行NDK编程:我需要使用以下代码创建一个ICMP套接字: socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP) 失败了。有人知道为什么吗? 最佳
当系统上只有 IPv6 地址可用时,你能打开 AF_INET 套接字吗? 我正在尝试为一个可能只有 IPv6 地址处于事件状态(不是双栈)的系统获取 HWADDR。 我可以使用 AF_INET 打开套
这可能与它无关,但我正在努力将旧的 MFC 应用程序转换为 Unicode。我想我可能会尝试使用 Unicode 字符集制作另一个全新的 MFC 应用程序,只是为了让我头脑清楚一些事情。除此之外,我需
我正在浏览 msdn 的“Getting Started With Winsock”,他们用参数打开了一个套接字 struct addrinfo *result = NULL,
我刚刚开始更好地了解套接字编程,我正在尝试构建一个可以发送和接收消息的简单程序。我遇到了将套接字绑定(bind)到地址以使用它的问题。这是我的- #include "stdafx.h" using n
所以我用 socket(AF_INET, SOCK_RAW, IPPROTO_UDP) 创建了一个套接字。然后我有一个无限循环的 recv() 。我知道它可以捕获所有数据报。但它会阻止数据报到达正确的
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我想知道将 AF_INET 套接字转换为使用 AF_UNIX 的可行性如何。这样做的原因是我有一个程序可以打开 TCP 套接字,但我们无法更改。因此,为了减少开销,我们希望将此套接字绑定(bind)为
我的网络不支持 ipv6,因此我无法访问 ipv6 服务器,是否有任何解决方案可以使用使用“AF_INET”域的套接字连接到它们?或任何其他解决方案?互联网上有没有免费进行此类转换的服务器?我可以读懂
我刚刚开始在 UNIX 中进行套接字编程,并且正在阅读套接字系统调用的手册页。我对 AF_LOCAL 参数及其使用时间感到有点困惑。手册只是说本地通信。 AF_INET 格式是否也适用于本地通信? 最
关闭创建为AF_PACKET 和AF_INET 的套接字之间存在这种时间差异的原因是什么?如何减少 AF_PACKET 的关闭时间? sockfd = socket(AF_PACKET, SOCK_R
当我阅读 AF_INET 时意思是,我得知还有一个家庭叫UNIX domain socket .这里是 wiki link我读到了这个。 我不明白这是什么意思: Unix domain sockets
我一直在 R 中使用 gmailR 从 R 发送电子邮件,没有出现任何问题,但自一周以来它一直出现故障。有时它有效,但大多数时候无效。顺便说一句,这是来自 github 的 Trinker 包(而不是
我有两个简单的进程在两台不同的 linux 机器上运行,一个客户端和一个服务器,它们使用 AF_INET|SOCK_STREAM 套接字相互通信,客户端向服务器发送一个简短的命令字符串,然后服务器响应
我是一名优秀的程序员,十分优秀!