我的项目用于sun.security.tools.keytool在JDK 1.8下生成证书,可以在这个包中找到rt.jar.根据依赖机制简介,系统依赖,我可以添加rt.jar为我的项目的依赖:
<dependency>
<groupId>sun.jdk</groupId>
<artifactId>rt.jar</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我很确定Maven发现了这个jar文件.但是,当我导入时sun.security.tools.keytool.Main,它仍然会生成错误.而且,最奇怪的是如果我复制rt.jar到某个地方并填写其路径pom.xml,它就可以了!一旦我切换回使用原件rt.jar,它就会失败!
谁能告诉我这怎么可能发生?
这可能是一个非常新秀的问题.说我有一个带宽限制100MB/s的网卡,所以是有可能,输入/输出带宽达到这个极限在同一时间?或者我会在任何时候都有这种不平等:in bandwidth+ out bandwidth<= 100MB/s
假设一个简单的网络模型:A已成功创建到B的TCP连接,并且它们正在相互通信
A <----------> B
我知道如果A上的程序死掉(例如核心转储),那么会导致RST数据包到B.所以B的任何读取尝试都将导致EOF,并且B的任何写入尝试都将导致SIGPIPE.我对吗?
但是,如果假设A上的网络出现故障(例如电缆/路由器故障),那么B的读/写尝试会发生什么?在我的情况下,所有套接字都已设置为非阻塞.结果,我不可能检测到网络错误吗?
顺便说一句,我注意到SO_KEEPALIVE套接字中有一个选项可能对我有用http://tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/.但我想知道如果我将探测间隔设置为2~3秒(默认为75 seoncd)会花费多少?似乎间隔配置是全局配置,那么这会影响机器上的所有插座吗?
最后的问题...说网络已经崩溃,任何写入尝试都会导致EPIPE一段时间后.但是,如果不是尝试写入,我将此套接字置于epoll设备中,那么会发生什么?epoll_wait会返回EPOLLHUP或EPOLLERR事件吗?