일상 연결에서 시간 초과가 너무 길면 개발 중 테스트에 영향을 미칩니다. 다음 기사에서는 주로 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)
public final InetAddress getAddress()
이 방법은 InetAddress를 반환한 다음 가져옵니다. 다음과 같이 InetAddress 메소드를 통해 IP를 가져옵니다.
public String getHostAddress()
그런 다음 로컬 IP를 얻습니다. 코드는
// client就是上面创建的Socket String host_ip = client.getAddress().getHostAddress();
그렇습니다.
위 내용은 Java에서 소켓 설정 연결 시간 초과에 대한 코드 구현에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!