当前位置: 技术问答>java相关
Socket连接的时间不能控制??请帮小妹
来源: 互联网 发布时间:2015-02-07
本文导语: 在客户端新建一个连接,但当服务器关闭,程序就会等很长时间才抛出异常退出,我想仅让它搜索连接30ms就退出,能做到吗 | setSoTimeout()方法设定之后,如果有某个通信操作的等待时间超出指...
在客户端新建一个连接,但当服务器关闭,程序就会等很长时间才抛出异常退出,我想仅让它搜索连接30ms就退出,能做到吗
|
setSoTimeout()方法设定之后,如果有某个通信操作的等待时间超出指定值(比如读取操作),就会抛出InterruptedIOException异常,你可以捕获这个异常进行处理。
一般都是这样:
try
{
socket_client =new Socket(IP,端口));
socket_client.setSoTimeout(20000);
in_client=new BufferedReader(new InputStreamReader(socket_client.getInputStream()));
out_client=new PrintWriter(socket_client.getOutputStream());
... ...
s_line=in_client.readLine(); //这个地方就可能抛出InterruptedIOException
}
catch(InterruptedIOException ex_timeout)
{
//对超时情况的处理
//... ...
}
一般都是这样:
try
{
socket_client =new Socket(IP,端口));
socket_client.setSoTimeout(20000);
in_client=new BufferedReader(new InputStreamReader(socket_client.getInputStream()));
out_client=new PrintWriter(socket_client.getOutputStream());
... ...
s_line=in_client.readLine(); //这个地方就可能抛出InterruptedIOException
}
catch(InterruptedIOException ex_timeout)
{
//对超时情况的处理
//... ...
}
|
Socket s = new Socket(...);
s.setSoTimeout(30);
另30ms太短了吧
s.setSoTimeout(30);
另30ms太短了吧
|
这样不是已经可控制了吗?