> Java > java지도 시간 > 본문

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

怪我咯
풀어 주다: 2017-07-02 10:17:17
원래의
1759명이 탐색했습니다.

일상 연결에서 시간 초과가 너무 길면 개발 중 테스트에 영향을 미칩니다. 다음 기사에서는 주로 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를 설명하면 전자는 소켓 연결 주소를 만드는 데 사용됩니다.

추상 클래스

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

매개변수:


    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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!