Package org.aoju.bus.image.metric
Class Connection
java.lang.Object
org.aoju.bus.image.metric.Connection
- All Implemented Interfaces:
Serializable
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConnection(String commonName, String hostname) Connection(String commonName, String hostname, int port) -
Method Summary
Modifier and TypeMethodDescriptionbooleanbind()将此网络连接绑定到TCP端口并启动服务器套接字* accept循环voidconnect(Connection remoteConn) booleanequalsRDN(Connection other) final intfinal intfinal Stringfinal String[]获取我们应忽略的IP地址列表 在使用负载均衡器的环境中很有用。对于来自负载平衡交换机的TCP ping 我们不想剥离新的*线程并尝试协商关联。final String网络连接对象的任意名称可以是一个有意义的*名称或任何唯一的字符序列final intfinal Device获取此网络连接所属的Device对象final String这是此特定连接的DNS名称 用于获取连接的当前IP地址主机名必须具有足够的资格 对于任何客户端DNS用户而言都是明确的final Stringfinal intfinal intfinal intfinal intgetPort()AE正在侦听的TCP端口,或-1表示仅启动关联的网络连接final int获取以KB为单位的SO_RCVBUF套接字值final intfinal int接收A-RELEASE-RP的超时时间,默认为5000final int接收A-ASSOCIATE-RQ的超时时间,默认为5000final intfinal intfinal int获取以KB为单位的SO_SNDBUF套接字选项值final intfinal int发送A-ABORT后,套接字关闭的延迟时间(以毫秒为单位),默认为50毫秒String[]此特定连接上支持的TLS CipherSuite TLS CipherSuites必须使用RFC-2246字符串 表示形式进行描述(例如“ SSL_RSA_WITH_3DES_EDE_CBC_SHA")final String[]booleanbooleanisCompatible(Connection remoteConn) boolean如果网络上安装了网络连接,则为True如果不存在 则将从设备继承有关网络连接*的安装状态的信息final booleanfinal booleanbooleanfinal booleanfinal booleanisServer()final boolean确定此网络连接是否正在将Nagle的算法用作其网络通信的一部分final booleanisTls()final booleanvoidpromptTo(StringBuilder sb, String indent) voidrebind()voidreconfigure(Connection from) static TCPHandlerregisterTCPProtocolHandler(Connection.Protocol protocol, TCPHandler handler) static UDPHandlerregisterUDPProtocolHandler(Connection.Protocol protocol, UDPHandler handler) final voidsetAcceptTimeout(int timeout) final voidsetBacklog(int backlog) final voidsetBindAddress(String bindAddress) final voidsetBlacklist(String[] blacklist) 设置一个IP地址列表,我们应从中忽略连接 在使用负载均衡器的环境中很有用对于来自负载平衡交换机的TCP ping 我们不想剥离新的*线程并尝试协商关联voidsetClientBindAddress(String bindAddress) final voidsetCommonName(String name) 网络连接对象的任意名称可以是一个有意义的*名称或任何唯一的字符序列final voidsetConnectTimeout(int timeout) final void设置此网络连接所属的设备对象final voidsetHostname(String hostname) 这是此特定连接的DNS名称 用于获取连接的当前IP地址,主机名必须具有足够的资格 对于任何客户端DNS用户而言都是明确的final voidsetHttpProxy(String proxy) final voidsetIdleTimeout(int idleTimeout) voidsetInstalled(Boolean installed) 如果网络上安装了网络连接,则为True如果不存在 则将从设备继承有关网络连接*的安装状态的信息final voidsetMaxOpsInvoked(int maxOpsInvoked) final voidsetMaxOpsPerformed(int maxOpsPerformed) final voidsetPackPDV(boolean packPDV) final voidsetPort(int port) AE正在侦听的TCP端口,或仅用于启动关联的网络连接 有效的端口值在0到65535之间voidsetProtocol(Connection.Protocol protocol) final voidsetReceiveBufferSize(int size) 将SO_RCVBUF套接字选项设置为以KB为单位的指定值voidvoidfinal voidsetReceivePDULength(int receivePDULength) final voidsetReleaseTimeout(int timeout) 接收A-RELEASE-RP的超时时间,默认为5000final voidsetRequestTimeout(int timeout) 接收A-ASSOCIATE-RQ的超时时间,默认为5000final voidsetResponseTimeout(int timeout) final voidsetRetrieveTimeout(int timeout) final voidsetRetrieveTimeoutTotal(boolean retrieveTimeoutTotal) final voidsetSendBufferSize(int size) 将SO_SNDBUF套接字选项设置为以KB为单位的指定值final voidsetSendPDULength(int sendPDULength) final voidsetSocketCloseDelay(int delay) 发送A-ABORT后,套接字关闭的延迟时间(以毫秒为单位),默认为50毫秒voidfinal voidsetTcpNoDelay(boolean tcpNoDelay) 设置此网络连接是否应将Nagle的算法*作为其网络通信的一部分voidsetTlsCipherSuites(String... tlsCipherSuites) 此特定连接上支持的TLS CipherSuite TLS CipherSuites必须使用RFC-2246字符串 表示形式进行描述(例如"SSL_RSA_WITH_3DES_EDE_CBC_SHA")final voidsetTlsNeedClientAuth(boolean tlsNeedClientAuth) final voidsetTlsProtocols(String... tlsProtocols) toString()voidunbind()static TCPHandlerstatic UDPHandlerfinal boolean
-
Field Details
-
NO_TIMEOUT
public static final int NO_TIMEOUT- See Also:
-
SYNCHRONOUS_MODE
public static final int SYNCHRONOUS_MODE- See Also:
-
NOT_LISTENING
public static final int NOT_LISTENING- See Also:
-
DEF_BACKLOG
public static final int DEF_BACKLOG- See Also:
-
DEF_SOCKETDELAY
public static final int DEF_SOCKETDELAY- See Also:
-
DEF_BUFFERSIZE
public static final int DEF_BUFFERSIZE- See Also:
-
DEF_MAX_PDU_LENGTH
public static final int DEF_MAX_PDU_LENGTH- See Also:
-
TLS_RSA_WITH_NULL_SHA
- See Also:
-
TLS_RSA_WITH_3DES_EDE_CBC_SHA
- See Also:
-
TLS_RSA_WITH_AES_128_CBC_SHA
- See Also:
-
DEFAULT_TLS_PROTOCOLS
-
-
Constructor Details
-
Connection
public Connection() -
Connection
-
Connection
-
-
Method Details
-
registerTCPProtocolHandler
public static TCPHandler registerTCPProtocolHandler(Connection.Protocol protocol, TCPHandler handler) -
unregisterTCPProtocolHandler
-
registerUDPProtocolHandler
public static UDPHandler registerUDPProtocolHandler(Connection.Protocol protocol, UDPHandler handler) -
unregisterUDPProtocolHandler
-
getDevice
获取此网络连接所属的Device对象- Returns:
- 设备信息
-
setDevice
设置此网络连接所属的设备对象- Parameters:
device- 所属设备对象
-
getHostname
这是此特定连接的DNS名称 用于获取连接的当前IP地址主机名必须具有足够的资格 对于任何客户端DNS用户而言都是明确的- Returns:
- 包含主机名的字符串
-
setHostname
这是此特定连接的DNS名称 用于获取连接的当前IP地址,主机名必须具有足够的资格 对于任何客户端DNS用户而言都是明确的- Parameters:
hostname- 包含主机名的字符串
-
getBindAddress
- Returns:
- 连接的绑定地址或
null
-
setBindAddress
- Parameters:
bindAddress- 监听套接字的绑定地址或null
-
getClientBindAddress
- Returns:
- 字符串
-
setClientBindAddress
- Parameters:
bindAddress- 传出连接的绑定地址或null
-
getProtocol
-
setProtocol
-
isRebindNeeded
public boolean isRebindNeeded() -
needRebind
public void needRebind() -
getCommonName
网络连接对象的任意名称可以是一个有意义的*名称或任何唯一的字符序列- Returns:
- 包含名称的字符串
-
setCommonName
网络连接对象的任意名称可以是一个有意义的*名称或任何唯一的字符序列- Parameters:
name- 包含名称的字符串
-
getPort
public final int getPort()AE正在侦听的TCP端口,或-1表示仅启动关联的网络连接- Returns:
- 包含端口号或-1
-
setPort
public final void setPort(int port) AE正在侦听的TCP端口,或仅用于启动关联的网络连接 有效的端口值在0到65535之间- Parameters:
port- 端口号或-1
-
getHttpProxy
-
setHttpProxy
-
useHttpProxy
public final boolean useHttpProxy() -
isServer
public final boolean isServer() -
getBacklog
public final int getBacklog() -
setBacklog
public final void setBacklog(int backlog) -
getConnectTimeout
public final int getConnectTimeout() -
setConnectTimeout
public final void setConnectTimeout(int timeout) -
getRequestTimeout
public final int getRequestTimeout()接收A-ASSOCIATE-RQ的超时时间,默认为5000- Returns:
- the int
-
setRequestTimeout
public final void setRequestTimeout(int timeout) 接收A-ASSOCIATE-RQ的超时时间,默认为5000- Parameters:
timeout- 一个包含毫秒的int值
-
getAcceptTimeout
public final int getAcceptTimeout() -
setAcceptTimeout
public final void setAcceptTimeout(int timeout) -
getReleaseTimeout
public final int getReleaseTimeout()接收A-RELEASE-RP的超时时间,默认为5000- Returns:
- 一个包含毫秒的int值
-
setReleaseTimeout
public final void setReleaseTimeout(int timeout) 接收A-RELEASE-RP的超时时间,默认为5000- Parameters:
timeout- 一个包含毫秒的int值
-
getSocketCloseDelay
public final int getSocketCloseDelay()发送A-ABORT后,套接字关闭的延迟时间(以毫秒为单位),默认为50毫秒- Returns:
- 一个包含毫秒的int值
-
setSocketCloseDelay
public final void setSocketCloseDelay(int delay) 发送A-ABORT后,套接字关闭的延迟时间(以毫秒为单位),默认为50毫秒- Parameters:
delay- 一个包含毫秒的int值
-
getResponseTimeout
public final int getResponseTimeout() -
setResponseTimeout
public final void setResponseTimeout(int timeout) -
getRetrieveTimeout
public final int getRetrieveTimeout() -
setRetrieveTimeout
public final void setRetrieveTimeout(int timeout) -
isRetrieveTimeoutTotal
public final boolean isRetrieveTimeoutTotal() -
setRetrieveTimeoutTotal
public final void setRetrieveTimeoutTotal(boolean retrieveTimeoutTotal) -
getIdleTimeout
public final int getIdleTimeout() -
setIdleTimeout
public final void setIdleTimeout(int idleTimeout) -
getTlsCipherSuites
此特定连接上支持的TLS CipherSuite TLS CipherSuites必须使用RFC-2246字符串 表示形式进行描述(例如“ SSL_RSA_WITH_3DES_EDE_CBC_SHA")- Returns:
- 包含受支持的密码套件的String数组
-
setTlsCipherSuites
此特定连接上支持的TLS CipherSuite TLS CipherSuites必须使用RFC-2246字符串 表示形式进行描述(例如"SSL_RSA_WITH_3DES_EDE_CBC_SHA")- Parameters:
tlsCipherSuites- 包含受支持的密码套件的String数组
-
isTls
public final boolean isTls() -
getTlsProtocols
-
setTlsProtocols
-
isTlsNeedClientAuth
public final boolean isTlsNeedClientAuth() -
setTlsNeedClientAuth
public final void setTlsNeedClientAuth(boolean tlsNeedClientAuth) -
getReceiveBufferSize
public final int getReceiveBufferSize()获取以KB为单位的SO_RCVBUF套接字值- Returns:
- 一个包含缓冲区大小(以KB为单位)
-
setReceiveBufferSize
public final void setReceiveBufferSize(int size) 将SO_RCVBUF套接字选项设置为以KB为单位的指定值- Parameters:
size- 一个包含缓冲区大小(以KB为单位)
-
setReceiveBufferSize
- Throws:
SocketException
-
setReceiveBufferSize
- Throws:
SocketException
-
getSendBufferSize
public final int getSendBufferSize()获取以KB为单位的SO_SNDBUF套接字选项值- Returns:
- 一个包含缓冲区大小(以KB为单位)
-
setSendBufferSize
public final void setSendBufferSize(int size) 将SO_SNDBUF套接字选项设置为以KB为单位的指定值- Parameters:
size- 一个包含缓冲区大小(以KB为单位)
-
getSendPDULength
public final int getSendPDULength() -
setSendPDULength
public final void setSendPDULength(int sendPDULength) -
getReceivePDULength
public final int getReceivePDULength() -
setReceivePDULength
public final void setReceivePDULength(int receivePDULength) -
getMaxOpsPerformed
public final int getMaxOpsPerformed() -
setMaxOpsPerformed
public final void setMaxOpsPerformed(int maxOpsPerformed) -
getMaxOpsInvoked
public final int getMaxOpsInvoked() -
setMaxOpsInvoked
public final void setMaxOpsInvoked(int maxOpsInvoked) -
isPackPDV
public final boolean isPackPDV() -
setPackPDV
public final void setPackPDV(boolean packPDV) -
isTcpNoDelay
public final boolean isTcpNoDelay()确定此网络连接是否正在将Nagle的算法用作其网络通信的一部分- Returns:
- boolean如果使用TCP无延迟(禁用Nagle算法)则为true
-
setTcpNoDelay
public final void setTcpNoDelay(boolean tcpNoDelay) 设置此网络连接是否应将Nagle的算法*作为其网络通信的一部分- Parameters:
tcpNoDelay- boolean如果应使用TCP无延迟(禁用Nagle算法)则为True
-
isInstalled
public boolean isInstalled()如果网络上安装了网络连接,则为True如果不存在 则将从设备继承有关网络连接*的安装状态的信息- Returns:
- boolean如果NetworkConnection安装在网络上,则为True
-
getInstalled
-
setInstalled
如果网络上安装了网络连接,则为True如果不存在 则将从设备继承有关网络连接*的安装状态的信息- Parameters:
installed- 如果网络上安装了NetworkConnection,则为True
-
rebind
- Throws:
IOExceptionGeneralSecurityException
-
getBlacklist
获取我们应忽略的IP地址列表 在使用负载均衡器的环境中很有用。对于来自负载平衡交换机的TCP ping 我们不想剥离新的*线程并尝试协商关联。- Returns:
- 返回应忽略的IP地址列表
-
setBlacklist
设置一个IP地址列表,我们应从中忽略连接 在使用负载均衡器的环境中很有用对于来自负载平衡交换机的TCP ping 我们不想剥离新的*线程并尝试协商关联- Parameters:
blacklist- IP地址列表,应将其忽略
-
toString
-
promptTo
-
setSocketSendOptions
- Throws:
SocketException
-
getEndPoint
- Throws:
UnknownHostException
-
getBindPoint
- Throws:
UnknownHostException
-
getClientBindPoint
- Throws:
UnknownHostException
-
bind
将此网络连接绑定到TCP端口并启动服务器套接字* accept循环- Returns:
- the boolean
- Throws:
IOException- 网络交互是否有问题GeneralSecurityException- 异常
-
isListening
public final boolean isListening() -
isBlackListed
-
unbind
public void unbind() -
connect
public Socket connect(Connection remoteConn) throws IOException, org.aoju.bus.core.exception.InternalException, GeneralSecurityException - Throws:
IOExceptionorg.aoju.bus.core.exception.InternalExceptionGeneralSecurityException
-
createDatagramSocket
- Throws:
IOException
-
getListener
-
close
-
isCompatible
-
equalsRDN
-
reconfigure
-