网络编程(三):Socket超时
2009-09-18 00:00:00 来源:WEB开发网核心提示:(1)连接超时 client program 通过套接字向服务器发出请求,但是一直都无法取得连接,网络编程(三):Socket超时,这时client program会阻塞一段时间,并最终因底层操作系统的限制而超时,我们希望能通过设置读写超时来解决这个问题: Java代码//设置读写超时Sockets=newSocket
(1)连接超时
client program 通过套接字向服务器发出请求,但是一直都无法取得连接。这时client program会阻塞一段时间,并最终因底层操作系统的限制而超时。如果我们想设置连接超时的时间,可以通过下面的构造方法:
Java代码
//构造具有超时设置的连接套接字
Socket s=new Socker(); //创建无连接套接字
s.connect(new InetSocketAddress(host,port),timeout) //设置超时连接
(2)读写超时
client program创建的socket成功连接到服务器上创建的socket。那么我们就可以通过getInputStream和 getOutputStream来收取消息了。但C-S两端线程会因为等待输入输出而被长时间阻塞。我们希望能通过设置读写超时来解决这个问题:
Java代码
//设置读写超时
Socket s=new Socket(host,port);//连接成功
s.setToTimeout(1000);
InputStream is=s.getInputStream();
上面的程序如果在读操作没有完成前就超过了时间限制(1秒)。程序将抛出SocketTimeoutException异常。我们能捕获这个异常并处理超时。
更多精彩
赞助商链接