在Java中,使用Socket連接時,可以通過設置connectTimeout
來控制連接超時。這可以通過Socket
類的connect
方法實現,該方法接受一個InetSocketAddress
對象和一個超時值(以毫秒為單位)。
以下是一個示例,展示了如何設置Socket連接超時:
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;
public class SocketConnectionTimeout {
public static void main(String[] args) {
String host = "example.com"; // 目標服務器地址
int port = 80; // 目標服務器端口
int timeout = 5000; // 連接超時時間,單位為毫秒
try {
Socket socket = new Socket();
InetSocketAddress address = new InetSocketAddress(host, port);
socket.connect(address, timeout);
// 連接成功后,你可以在此處編寫與服務器的通信代碼
socket.close();
} catch (SocketTimeoutException e) {
System.err.println("連接超時: " + e.getMessage());
} catch (IOException e) {
System.err.println("連接出錯: " + e.getMessage());
}
}
}
在這個示例中,我們創建了一個Socket
對象,然后使用InetSocketAddress
對象指定目標服務器的地址和端口。接著,我們調用socket.connect()
方法并傳入address
和timeout
參數。如果在指定的超時時間內無法建立連接,將拋出SocketTimeoutException
。如果連接成功,你可以繼續編寫與服務器的通信代碼。最后,記得關閉Socket
連接。