>  기사  >  Java  >  Java에서 소켓 설정 연결 시간 초과에 대한 코드 구현에 대한 자세한 설명

Java에서 소켓 설정 연결 시간 초과에 대한 코드 구현에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-02 10:17:171732검색

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

머리말

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

Socket 클래스는 메소드를 제공합니다:

public void connect(SocketAddress endpoint, int timeout) 
    throws IOException

매개변수:

  • endpoint - SocketAddress는 호스트 IP 및 포트

  • timeout을 제공합니다. 시간 초과 값(밀리초)입니다.

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

// 设置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);

위의 SocketAddress와 InetSocketAddress를 설명하면 전자는 소켓 연결 주소를 만드는 데 사용됩니다.

추상 클래스

및 후자 후자는 전자의 하위 클래스이며 주소는 구성 방법을 통해 생성됩니다.

public InetSocketAddress(String hostname, int port)

매개변수:


    hostname - 호스트 이름도 가능합니다. ip
  • port – 포트 번호
  • 또한 InetSocketAddress는 로컬 IP를 얻기 위해 일반적으로 사용되는 방법과 같은 일부 네트워크 관련 방법도 제공합니다.
public final InetAddress getAddress()

이 방법은 InetAddress를 반환한 다음 가져옵니다. 다음과 같이 InetAddress 메소드를 통해 IP를 가져옵니다.

public String getHostAddress()

그런 다음 로컬 IP를 얻습니다. 코드는

// client就是上面创建的Socket
String host_ip = client.getAddress().getHostAddress();

그렇습니다.

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

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