Class Connection

java.lang.Object
org.aoju.bus.image.metric.Connection
All Implemented Interfaces:
Serializable

public class Connection extends Object implements Serializable
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Details

  • Constructor Details

    • Connection

      public Connection()
    • Connection

      public Connection(String commonName, String hostname)
    • Connection

      public Connection(String commonName, String hostname, int port)
  • Method Details

    • registerTCPProtocolHandler

      public static TCPHandler registerTCPProtocolHandler(Connection.Protocol protocol, TCPHandler handler)
    • unregisterTCPProtocolHandler

      public static TCPHandler unregisterTCPProtocolHandler(Connection.Protocol protocol)
    • registerUDPProtocolHandler

      public static UDPHandler registerUDPProtocolHandler(Connection.Protocol protocol, UDPHandler handler)
    • unregisterUDPProtocolHandler

      public static UDPHandler unregisterUDPProtocolHandler(Connection.Protocol protocol)
    • getDevice

      public final Device getDevice()
      获取此网络连接所属的Device对象
      Returns:
      设备信息
    • setDevice

      public final void setDevice(Device device)
      设置此网络连接所属的设备对象
      Parameters:
      device - 所属设备对象
    • getHostname

      public final String getHostname()
      这是此特定连接的DNS名称 用于获取连接的当前IP地址主机名必须具有足够的资格 对于任何客户端DNS用户而言都是明确的
      Returns:
      包含主机名的字符串
    • setHostname

      public final void setHostname(String hostname)
      这是此特定连接的DNS名称 用于获取连接的当前IP地址,主机名必须具有足够的资格 对于任何客户端DNS用户而言都是明确的
      Parameters:
      hostname - 包含主机名的字符串
    • getBindAddress

      public final String getBindAddress()
      监听套接字的绑定地址或null如果null,则将 侦听套接字绑定到getHostname() 这是默认值
      Returns:
      连接的绑定地址或null
    • setBindAddress

      public final void setBindAddress(String bindAddress)
      监听套接字的绑定地址或null 如果null, 则将侦听套接字绑定到getHostname()
      Parameters:
      bindAddress - 监听套接字的绑定地址或null
    • getClientBindAddress

      public String getClientBindAddress()
      传出连接的绑定地址,"0.0.0.0"null 如果"0.0.0.0",系统将选择任何本地IP进行传出连接 如果null,则将传出连接绑定到 getHostname()
      Returns:
      字符串
    • setClientBindAddress

      public void setClientBindAddress(String bindAddress)
      传出连接的绑定地址, "0.0.0.0"null 如果"0.0.0.0",系统将选择任何本地IP进行传出*连接 如果null,则将传出连接绑定到 getHostname()
      Parameters:
      bindAddress - 传出连接的绑定地址或null
    • getProtocol

      public Connection.Protocol getProtocol()
    • setProtocol

      public void setProtocol(Connection.Protocol protocol)
    • isRebindNeeded

      public boolean isRebindNeeded()
    • needRebind

      public void needRebind()
    • getCommonName

      public final String getCommonName()
      网络连接对象的任意名称可以是一个有意义的*名称或任何唯一的字符序列
      Returns:
      包含名称的字符串
    • setCommonName

      public final void setCommonName(String name)
      网络连接对象的任意名称可以是一个有意义的*名称或任何唯一的字符序列
      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

      public final String getHttpProxy()
    • setHttpProxy

      public final void setHttpProxy(String proxy)
    • 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

      public String[] getTlsCipherSuites()
      此特定连接上支持的TLS CipherSuite TLS CipherSuites必须使用RFC-2246字符串 表示形式进行描述(例如“ SSL_RSA_WITH_3DES_EDE_CBC_SHA")
      Returns:
      包含受支持的密码套件的String数组
    • setTlsCipherSuites

      public void setTlsCipherSuites(String... tlsCipherSuites)
      此特定连接上支持的TLS CipherSuite TLS CipherSuites必须使用RFC-2246字符串 表示形式进行描述(例如"SSL_RSA_WITH_3DES_EDE_CBC_SHA")
      Parameters:
      tlsCipherSuites - 包含受支持的密码套件的String数组
    • isTls

      public final boolean isTls()
    • getTlsProtocols

      public final String[] getTlsProtocols()
    • setTlsProtocols

      public final void setTlsProtocols(String... tlsProtocols)
    • 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

      public void setReceiveBufferSize(ServerSocket ss) throws SocketException
      Throws:
      SocketException
    • setReceiveBufferSize

      public void setReceiveBufferSize(DatagramSocket ds) throws SocketException
      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

      public Boolean getInstalled()
    • setInstalled

      public void setInstalled(Boolean installed)
      如果网络上安装了网络连接,则为True如果不存在 则将从设备继承有关网络连接*的安装状态的信息
      Parameters:
      installed - 如果网络上安装了NetworkConnection,则为True
    • rebind

      public void rebind() throws IOException, GeneralSecurityException
      Throws:
      IOException
      GeneralSecurityException
    • getBlacklist

      public final String[] getBlacklist()
      获取我们应忽略的IP地址列表 在使用负载均衡器的环境中很有用。对于来自负载平衡交换机的TCP ping 我们不想剥离新的*线程并尝试协商关联。
      Returns:
      返回应忽略的IP地址列表
    • setBlacklist

      public final void setBlacklist(String[] blacklist)
      设置一个IP地址列表,我们应从中忽略连接 在使用负载均衡器的环境中很有用对于来自负载平衡交换机的TCP ping 我们不想剥离新的*线程并尝试协商关联
      Parameters:
      blacklist - IP地址列表,应将其忽略
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • promptTo

      public StringBuilder promptTo(StringBuilder sb, String indent)
    • setSocketSendOptions

      public void setSocketSendOptions(Socket s) throws SocketException
      Throws:
      SocketException
    • getEndPoint

      public InetSocketAddress getEndPoint() throws UnknownHostException
      Throws:
      UnknownHostException
    • getBindPoint

      public InetSocketAddress getBindPoint() throws UnknownHostException
      Throws:
      UnknownHostException
    • getClientBindPoint

      public InetSocketAddress getClientBindPoint() throws UnknownHostException
      Throws:
      UnknownHostException
    • bind

      public boolean bind() throws IOException, GeneralSecurityException
      将此网络连接绑定到TCP端口并启动服务器套接字* accept循环
      Returns:
      the boolean
      Throws:
      IOException - 网络交互是否有问题
      GeneralSecurityException - 异常
    • isListening

      public final boolean isListening()
    • isBlackListed

      public boolean isBlackListed(InetAddress ia)
    • unbind

      public void unbind()
    • connect

      public Socket connect(Connection remoteConn) throws IOException, org.aoju.bus.core.exception.InstrumentException, GeneralSecurityException
      Throws:
      IOException
      org.aoju.bus.core.exception.InstrumentException
      GeneralSecurityException
    • createDatagramSocket

      public DatagramSocket createDatagramSocket() throws IOException
      Throws:
      IOException
    • getListener

      public SocketListener getListener()
    • close

      public void close(Socket s)
    • isCompatible

      public boolean isCompatible(Connection remoteConn)
    • equalsRDN

      public boolean equalsRDN(Connection other)
    • reconfigure

      public void reconfigure(Connection from)