>  기사  >  Java  >  Java에서 소켓에 대한 연결 시간 초과 설정에 대한 코드 사례 분석

Java에서 소켓에 대한 연결 시간 초과 설정에 대한 코드 사례 분석

黄舟
黄舟원래의
2017-06-18 09:58:471721검색

일상 연결에서 시간 초과가 너무 길면 개발 중 테스트에 영향을 미칩니다. 다음 기사에서는 주로 Java에서 소켓 연결 시간 초과를 설정하는 코드를 공유합니다. 함께 해보세요.

머리말

Java 소켓이 지정된 IP 및 포트를 사용하여 호스트에 연결할 수 없는 경우 IOException 예외가 발생한다는 것은 누구나 알고 있습니다. 연결에 불확실한 기간이 있을 것입니다. IOException 발생에 대한 시간은 소위 타임아웃 기간인데, 타임아웃 기간이 너무 길면 코드가 제품화되면 사용자 경험에 큰 영향을 미치게 됩니다. 이 기간은? 자세한 소개를 살펴 보겠습니다.

socket 클래스는 다음을 제공합니다. 사용할 시간 초과 값(밀리초)입니다.


이 방법은 소켓을 지정된 서버에 연결하고 시간 초과 값을 설정하는 데 사용됩니다. 시간 초과 값을 0보다 크게 설정하면 시간 초과가 발생하면 예외가 발생하고 연결이 중지됩니다. 시간 초과 값을 0으로 설정하면 시간 초과가 무한정됩니다.

따라서 위의 방법을 사용하여 소켓 연결의 시간 초과 기간을 설정할 수 있습니다. 코드는 다음과 같습니다.

public void connect(SocketAddress endpoint, int timeout) 
    throws IOException
    위의 SocketAddress와 InetSocketAddress를 설명하면 이 두 클래스는 소켓 연결 주소를 만드는 데 사용됩니다. 전자는
  • 추상 클래스

    이고 후자는 전자의 하위 클래스이며

    생성자
  • 를 통해 주소를 생성합니다.
  • // 设置ip和prot
    String ip = "127.0.0.1";
    int port = 8888;
    // 创建Socket
    Socket client = new Socket();
    // 设置发送地址
    SocketAddress addr = new InetSocketAddress(ip, port);
    // 超时1秒,并连接服务器
    client.connect(addr, 1000);

매개변수:

hostname – 호스트 이름 또는 ip

port – 포트 번호

또한 InetSocketAddress는 로컬 IP를 얻기 위해 일반적으로 사용되는 방법과 같은 일부 네트워크 관련 방법도 제공합니다.


public InetSocketAddress(String hostname, int port)
이 방법은 InetAddress를 반환하고 다음과 같이 InetAddress 메서드를 통해 IP를 얻습니다.

    public final InetAddress getAddress()
  • 그런 다음 로컬 IP를 얻는 코드는 다음과 같습니다.

  • public String getHostAddress()

    그렇습니다!

요약


위 내용은 Java에서 소켓에 대한 연결 시간 초과 설정에 대한 코드 사례 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.