Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Windows上绑定IPv6服务器套接字

在Windows上绑定IPv6服务器套接字
EN

Stack Overflow用户
提问于 2009-08-31 03:51:46
回答 4查看 5.2K关注 0票数 5

我尝试在Windows7上绑定Java1.6中的IPv6服务器套接字,使用以下片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssock = ServerSocketChannel.open();
ServerSocket sock = ssock.socket(); 
sock.bind(new InetSocketAddress(InetAddress.getByAddress(new byte[16]), 0));

不幸的是,这在协议族不支持的IOException: Address系列中失败:绑定

我了解到,编写Java的前提是,Windows使用单独的v4和v6堆栈(尽管Windows 7不使用),因此为v4和v6绑定一个套接字是行不通的。但是,这不是我想要做的:我只是想将一个v6套接字绑定到任意地址(即::)。

编辑:它在Vista上也失败了。

我做错了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-01 03:47:47

我找到了解决方案,那就是bug 6230761。创建IPv6服务器套接字通道的唯一受支持的方法是首先创建服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ServerSocket s = new ServerSocket();
s.bind(new InetSocketAddress(InetAddress.getByName("::"), 0));

编辑:这意味着NIO不能真正与IPv6一起使用。

票数 7
EN

Stack Overflow用户

发布于 2009-08-31 16:21:21

该错误意味着您将IPv6地址与非IPv6 6协议混合在一起。这很可能意味着您要开始的ServerSocketChannel不支持IPv6。我认为Java还没有正式支持Windows 7。尝试使用NetworkInterface.getNetworkInterfaces()和NetworkInterface.getInetAddresses()来确保IPv6地址实际上是可用的。Java甚至说,当IPv6不可用或IPv6被禁用时,尝试传递IPv6地址将引发异常。

票数 1
EN

Stack Overflow用户

发布于 2011-02-28 13:19:13

我也看到了jython的这个问题。

http://bugs.jython.org/issue1711

jython模块必须使用java.nio,因为这是支持cpython兼容性所需的非阻塞功能的唯一方法。

我非常失望地看到,运行在最新窗口上的最新java不支持IPV6 :这是非常糟糕的。IPV4地址空间已经耗尽:未来几个月,对IPV6支持的需求将大大增加,更不用说几年了。

我们为jython用户提供了一个解决方案,它强制getaddrinfo()函数只返回IPV4地址。这是一个糟糕的解决办法,但至少可以让用户启动并运行,如果他们能够获得一个IPV4地址。

支持

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1357091

复制
相关文章
accept()返回的套接字绑定哪个端口 新旧套接字的联系
摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的。它从内核中取出已经建立的客户连接,然后把这个已经建立的连接返回给用户程序,此时用户程序就可以与自己的客户进行点到点的通信了。
bear_fish
2018/09/20
3.9K1
Windows 网络通信套接字技术
TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输 层服务,而IP则是提供网络层服务。TCP/IP协议包括如下协议,其结构如图所示。
全栈程序员站长
2022/09/23
7920
Windows 网络通信套接字技术
套接字
版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/88673990
zy010101
2019/05/25
1.3K0
TCP套接字绑定双端口传输文件(python)
服务端代码 import socket # 创建tcp服务套接字 def main(): tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcp_server_socket_for_file_name = socket.socket(socket.AF_INET, socket.SOCK_STREAM) print("1.套接字创建完毕...") # 绑定端口号 tcp_
zhaoolee
2018/04/19
1.2K0
Socket(套接字)
TCP/IP只是一个协议栈,Socket的出现只是可以更方便的使用TCP/IP协议栈而已,其对TCP/IP进行了抽象,形成了几个最基本的函数接口。比如create,listen,accept,connect,read和write等等。
老马的编程之旅
2022/06/22
1.3K0
套接字选项
选项影响套接字操作,如 封包路由,OOB数据传输,获取和设置套接字选项分别是 getsockopt  setsockopt 用法如下: int getsockopt(SOCKET s,int level,int optname,char* optval,int* optlen); int setsockopt(SOCKET s,int level,int optname,char* optval,int* optlen); 每个协议层套接字的选项有不同的级别: 应用层:SOL_SOCKET 传输层:IPPR
用户1154259
2018/01/17
1.2K0
Python套接字
Python只支持AF_UNIX(基于文件)、AF_NETLINK(使用标准的BSD套接字接口进行用户级别和内核级别代码之间的IPC)、AF_TIPC(透明的进程间通信)、AF_INET(基于网络)家族。
用户4845306
2019/03/14
1.6K0
Windows套接字CAsyncSocket类的使用「建议收藏」
1、创建一个CAsyncSocket或CSocket类或其子类对象A,用于监听客户端连接,然后通过Create函数设定端口号和协议类型为 SOCK_STREAM。 2、开启监听,用函数Listen(); 3、接收客户端上来的连接,用函数Accept(&B);并且把连接连接的对象存到B中,以便通信使用。 4、当客户端发送来消息时,会触发OnReceive函数,此时只要调用函数Receive()函数来接受数据就可以了。
全栈程序员站长
2022/09/23
6680
Java套接字
  本文补充一下Java关于套接字方面的内容,因为其应用相对比较简单,所以下面介绍两个程序实例。
云海谷天
2022/08/09
7680
Java套接字
16(套接字)
套接字描述符在Unix系统中是用文件描述符实现的。事实上,许多处理文件描述符函数(read和write)都可以处理文件描述符 要创建一个套接字,可以调用socket函数
提莫队长
2019/02/21
9820
多个套接字可以绑定同一个端口吗
在日常的开发过程中,经常会遇到端口占用冲突的问题。那是不是不同的进程不能同时监听同一个端口呢?这个小节就来介绍 SO_REUSEPORT 选项相关的内容。
挖坑的张师傅
2022/05/13
2.8K0
多个套接字可以绑定同一个端口吗
Socket 套接字协议
A network socket is an internal endpoint for sending or receiving data within a node on a computer network. Concretely, it is a representation of this endpoint in networking software (protocol stack), such as an entry in a table (listing communication protocol, destination, status, etc.), and is a form of system resource.
vanguard
2020/03/18
1.5K0
彻底解决docker在windows上的端口绑定问题
我相信不少开发者正在或曾经使用 docker 起后端开发环境,那么肯定有不少人遇到过这个莫名奇妙的错误:
HomeboyC
2022/11/18
6.6K0
彻底解决docker在windows上的端口绑定问题
套接字随笔1
accept函数接受一个客户端请求后会返回一个新的SOCKFD值,当有不同的客户端同时有不同请求时,会返回不同的SOCKFD的值。这个不同的值和建立SOCKET 时生成的SOCKFD还是不同的。服务器与客户端之间的通信就是在这些不同的SOCKFD上进行的。
随心助手
2022/11/30
5500
IPC|网络套接字
为了访问由UDP提供的服务,你需要像以前一样使用套接字和close系统调用,但你需要用两个
heidsoft
2022/04/18
1.1K0
套接字Socket编程
Socket,原意插座、插口。写软件程序时,可以想象成一根网线,一头插在客户端,一头插在服务端,然后进行通信。所以通信前,双方都要建立一个Socket。
JavaEdge
2021/12/07
1.3K0
套接字Socket编程
Windows上使用Python绑定CPU
在 Windows 平台上,有时候我们想让自己的程序在指定的CPU上运行,此时我看可以通过下面几个API来实现 win32process.SetProcessAffinityMask(hProcess, mask) - 绑定进程到CPU win32api.GetSystemInfo()[5] - 查询当前机器有几个CPU win32api.GetCurrentProcess() - 获取当前进程信息 其中绑定CPU是mask的值如下: 0x0001 1 0x0002 2 0x0003 1 or 2 0x00
kongxx
2018/05/14
1.6K0
linux 网络套接字
在内核分析网络分组时,底层协议的数据将传输到跟高的层。而发送数据的时候顺序是相反的。每一层都是通过加(首部+净荷)传向跟底层,直至最终发送。
233333
2019/05/25
2.8K0
Socket - 套接字编程
目录 Socket - 套接字编程 Socket 通信流程图 Socket模块 socket()方法 部分参数 bind()方法 listen()方法 accept()方法 accept()函数返回值:sock、addr connect() 方法 close()方法 服务端客户端对比 简单案例 简易通信循环 优化通信循环 黏包问题 Struct 模块 规定报头 解决黏包问题 上传文件案例 UDP通信 Socket - 套接字编程 只要涉及到远程数据交互必须要操作OSI七层模型,那么每层都需要相应的程序
HammerZe
2022/03/25
1K0
Socket - 套接字编程
套接字Socket编程
Socket,原意插座、插口。写软件程序时,可以想象成一根网线,一头插在客户端,一头插在服务端,然后进行通信。所以通信前,双方都要建立一个Socket。
JavaEdge
2021/10/18
1.4K0

相似问题

绑定到Windows上的停靠套接字

102

Windows套接字无法在VPN IP地址上绑定

13

绑定:非套接字上的套接字操作

10

绑定服务器套接字

10

将套接字绑定到IPv6地址

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文