我一直在尝试设置一个使用IPv6的UDP服务器,该服务器接受来自IPv4和IPv6客户端的数据包。我正在使用C++中的winsock2编程,并在Windows中使用代码块。我已成功地从一个朋友接收并返回一个IPv6数据包。当我发送到10.0.0.90(静态)和127.0.0.1(环回)的本地地址时,我还可以通过IPv4接收和弹回来自我自己的数据包。显然,当不同网络上的朋友试图通过internet发送到那些本地地址时,在我的端没有收到数据包。我在哪里可以找到IPv4地址,以便只使用IPv4的客户端可以通过Internet成功地发送到我的IPv6服务器?
当我在127.0.0.1通过getaddrinfo()ping自己时,得到的addrinfo结构包含一个空白通配符ipv4地址(0.0.0.0),而没有ipv6地址。
当我为目标调用NULL值的getaddrinfo()时,我会得到两个addrinfo结构,它们都包含IPv4和IPv6位置的通配符值。
从这个问题中,我了解到要通过ipv4客户端连接到IPv6服务器,您需要使用ipv4映射的IPv6地址。我的问题是我不确定自己是否还有ipv4地址。当我访问www.whatismyipaddress.com时,我只得到一个ipv6公共地址。
这些试验都没有为我提供一个ipv4地址,我可以提供给一个只有ipv4的客户机,现在我完全卡住了。我已经处理了绑定到通配符IP和禁用IPv6_V6only。一切工作都很好,但我不知道还有什么地方可以找到目的地地址。谁能给我一个正确的方向的提示吗?谢谢!
目标地址是服务器的IPv4地址。禁用V6ONLY后,您的IPv6套接字可以接收IPv4数据包,但您的服务器仍然需要一个可访问的IPv4地址。如果没有IPv4地址,只有IPv4的客户端无法与您联系。
IPv4映射IPv6地址只是在IPv6软件中表示IPv4地址。但您仍然需要IPv4地址。
我的connect调用的结果始终是10061:连接被拒绝。 如果我将服务器代码更改为绑定到::(或者将空主机传递给getaddrinfo()(同样的事情)),并将客户机代码更改为在getaddrinfo()调用中指定空主机,那么V4客户机可以很好地连接。 谁能解释一下为什么?我没有读到任何东西,如果我们想要双套接字行为,我们必须指定一个空主机(因此使用INADDR_ANY)。这不可能是一个要求,因
我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s
我有一个关于Java插座的技术问题。 例如,假设我有一个Java Sockets服务器和n个多个客户端。是否可以几乎实时地将数据从服务器发送到任何或所有客户端? 更准确地说: 有哪种监听器可以在Sockets客户端中实现 有人能告诉我什么方法是最好的吗?此外,如果有人有一个代码示例,我也会很高兴。 谢谢
我有一个下一个js web应用程序与Express。我想把数据发布到这个网页上,在我的服务器上获取它,然后把它传递到我的下一个js页面。我是next js和Express的新手。以下是我的server.js代码:- 当我使用get request时,我可以使用return app.render(req,res,'/posts',{name:“pritam”})将数据从服务器发送到客户端,但当我尝试
我有一个TCP服务器和一个客户端,简单的TCP服务器将接收传入的数据并打印出来,而客户端将继续创建一个套接字连接并循环发送数据到TCP服务器。 我得到的信息是,如果一个TCP连接被正确地关闭了,这个过程应该会继续下去,不会发生任何崩溃。 但在从客户端接收到一定数量的数据到服务器之后,客户端会崩溃,并出现错误 有没有什么办法可以避免这次撞车,让它持续运行呢?我是新来的所以如果我犯了什么愚蠢的错误,我
同样,如果客户机已经创建了一个IPv6套接字(因为getaddrinfo()说它是有效的),然后调用getaddrinfo()来查找服务器的地址,那么如果它只得到一个IPv4结果呢?我知道我可以告诉getaddrinfo()只给出IPv6结果,但是如果服务器没有IPv6地址怎么办?UDP客户端是否应该关闭并重新创建其套接字以匹配服务器地址格式?还是保证我能得到我要求的地址格式? (我欢迎任何能回答