本帖最后由 为梦而战 于 2011-12-29 15:41 编辑
学课程的时候我们一般被提醒用完资源后一定记的close(),比如用完输入流或输出流读写完文件后,我们还把close()放入finally{}中,一定关闭资源,以至于我们常常习惯这个动作,但是我们也知道,我们编程序是根据需求来写的,而当我们形成了这种习惯后,可能会定型思维。我也常常犯这种毛病,所以当问题发生时才恍然大悟。
接下来举个例子来一起谨记:
我们在使用面向连接的TCP来写客户端和服务器端,用它来现实客户端与服务器之间的通信,那我们在客户端访问完服务器端后,下次还想访问服务器,可是服务器在上一次访问完后close()了,下次就访问不到服务器了,这显然是行不通的吧。服务器是为了提供服务的,为了让它一直为客户提供服务,那服务器用完就不应该close()。想想百度为什么能让我随时访问啊,就是因为它的服务器是一直开着的,那我们将来要进行面向连接的网络编程时,在编写服务器端的程序的时候就应该注意一下我们的close()习惯了。
当然,服务器是应该在客户访问完,close()掉客户端的连接的,因为服务器能承受的客户端数量还是有限的。 |
|