在SOCKET编程中遇到了点问题,请教一下大虾们。
      (1) 我在本机上写了一个SOCKET程序测试了一下,当服务器端开启后,再打开客户端,程序运行一切正常,这时候、我试着断开服务器端:此时客户端出错了,异常提示:java.net.SocketException: Connection reset by peer: socket write error。如果在这个时候再打开服务器端,出现一样的异常提示。
      (2) 我在客户端写了个服务器端断开时候的处理程序,也就是让客户端重新连接连接服务器端。
1       try{
2        if(clientSocket!=null)   //客户端套接字
3         clientSocket.close();
4          clientSocket=null;
5          os.close();             //客户端输出流
6          clientSocket=new Socket(localhost,8080);
7          os=clientSocket.getOutputStream();
8         }catch(Exception e2)
9         {}      重复第一步,还是不行,错误异常提示如下:
         java.net.SocketException: Socket closed
      错误提示是说SOCKET被关,所以我把上面代码的2 3 4 5四行注释掉,结果竟可以了。
      问题虽然暂时解决了,不过有些地方还是不清楚。为什么当服务器断开的时候,我在客户端调用clientSocket.close();后再重新初始化会提示Socket closed。我在客户端和服务器端都是直接用inputstream,outputstream来通讯的,不知道和这个是否有关系
     InputStream is=clientSocket.getInputStream();
     OutputStream  os=clientSocket.getOutputStream();