자바 에서 Socket 설정 연결 시간 초과 코드 공유

머리말
자바 의 소켓 이 지정 한 IP 와 Port 의 호스트 에 연결 되 지 않 으 면 IOException 이상 을 던 지 는 것 을 잘 알 고 있 습 니 다.일반적으로 연결 에서 IOException 이 나타 날 때 까지 일정 하지 않 은 시간 이 있 습 니 다.이른바 시간 초과 가 길 면 개발 할 때 테스트 에 영향 을 주 고 코드 가 제품 이 되면 사용자 체험 에 도 큰 영향 을 줄 수 있 습 니 다.그럼 이 걸 어떻게 설정 해 야 되 지?다음은 상세 한 소 개 를 살 펴 보 겠 습 니 다.
Socket 클래스 는 방법 을 제공 합 니 다:

public void connect(SocketAddress endpoint, int timeout) 
    throws IOException
인자:
  • endpoint C SocketAddress 는 호스트 IP 와 Port
  • 를 제공 합 니 다.
  • timeout C 에서 사용 할 시간 초과 값(밀리초 단위).
  • 이 방법 은 Socket 을 지정 한 서버 에 연결 하고 시간 초과 값 을 설정 하 는 데 사 용 됩 니 다.시간 초 과 는 0 이상 으로 설정 되 어 있 으 며 시간 초 과 를 하면 이상 을 던 져 연결 을 중단 하고 시간 초 과 는 0 으로 설정 하면 무한 시간 초 과 됩 니 다.
    따라서 상기 방법 을 사용 하면 Socket 연결 의 시간 초과 시간 을 설정 할 수 있 습 니 다.코드 는 다음 과 같 습 니 다.
    
    //   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);
    위의 Socketdress 와 InetSocketdress 를 설명 하 십시오.이 두 가지 종 류 는 Socket 연결 주 소 를 만 드 는 데 사 용 됩 니 다.전 자 는 추상 적 인 종류 이 고 후 자 는 전자의 하위 클래스 입 니 다.구조 방법 을 통 해 주 소 를 만 듭 니 다.
    
    public InetSocketAddress(String hostname, int port)
    인자:
  • hostname C 호스트 이름 도 ip
  • 일 수 있 습 니 다.
  • port C 단 구호
  • 또한 InetSocketdress 는 네트워크 와 관련 된 방법 도 제공 했다.예 를 들 어 자주 사용 하 는 이 컴퓨터 의 IP 를 얻 는 방법 도 제공 했다.
    
    public final InetAddress getAddress()
    이 방법 은 InetAddress 를 되 돌려 주 고 InetAddress 의 방법 으로 IP 를 가 져 옵 니 다.다음 과 같 습 니 다.
    
    public String getHostAddress()
    그러면 이 컴퓨터 IP 를 가 져 오 는 코드 는:
    
    // client       Socket
    String host_ip = client.getAddress().getHostAddress();
    그럼 여기까지!
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기