第一種,是會丟出 SocketTimeoutExcpetion 的,有找到Host但一直等不到回應。可以設 socket.setSoTimeout(timeout).
第二種,是會丟出 UnknownHostException 的,是找不到 Host 的,若在Local 找不到這個 Host 很快就丟,但在 Server 通常內建一堆DNS解析IP,等全部巡完一輪都要等好久。所以時間內找不到就視為 UnknownHostException 作法如下 :
- Socket socket = SocketFactory.getDefault().createSocket();
- SocketAddress remoteaddr = new InetSocketAddress(host, port);
- socket.connect(remoteaddr, timeout); // 就在connect時設timeout
沒有留言:
張貼留言