可以为Java Socket写消息设置超时吗
展开全部
可以。
URLConnection里面有一个setConnectionTimeout(int timeout);
* @param timeout an {@code int} that specifies the connect
* timeout value in milliseconds
URLConnection里面有一个setConnectionTimeout(int timeout);
* @param timeout an {@code int} that specifies the connect
* timeout value in milliseconds
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Socket socket = new Socket();
SocketAddress address = new InetSocketAddress("127.0.0.1", 8080);
try {
socket.connect(address, 90000);
SocketTimeoutException
} catch (IOException e) {
e.printStackTrace();
}
使用Socket.connect(SocketAddress sa, int timeout)方法。
timeout为毫秒数,为0则永不超时(Socket默认也是如此)。
如果到时间,仍然没有连接成功,则抛出SocketTimeoutException,在java.net包中
SocketAddress address = new InetSocketAddress("127.0.0.1", 8080);
try {
socket.connect(address, 90000);
SocketTimeoutException
} catch (IOException e) {
e.printStackTrace();
}
使用Socket.connect(SocketAddress sa, int timeout)方法。
timeout为毫秒数,为0则永不超时(Socket默认也是如此)。
如果到时间,仍然没有连接成功,则抛出SocketTimeoutException,在java.net包中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
长连接推送延时?不知道你的场景是什么,超时可以用Thread.sleep(2000),延时2秒执行后面代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有timeoit方法,来设置超时的时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpGet httpget = new HttpGet(url);
CloseableHttpResponse response = httpclient.execute(httpget);
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(2000).setSocketTimeout(2000).build();
httpget.setConfig(config);
int status = response.getStatusLine().getStatusCode();
response.close();
if (status == 200) {
return true;
} else {
return false;
}
} catch (IOException e) {
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
HttpGet httpget = new HttpGet(url);
CloseableHttpResponse response = httpclient.execute(httpget);
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(2000).setSocketTimeout(2000).build();
httpget.setConfig(config);
int status = response.getStatusLine().getStatusCode();
response.close();
if (status == 200) {
return true;
} else {
return false;
}
} catch (IOException e) {
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询