代码如下:
  Socket socket = new Socket();
  public void send(String host,int port,String message){
    socket.connect(new InetStockAddress(host,port),0);
    //发关消息
    socket.close();
  }
  send()在一个线程中被反复调用,问题是第2次调用时会报socket is closed的错
  误,异常发生在connect()处,我打开connect()的源码发现
  里面:
  
  if (isClosed())
    throw new SocketException("Socket is closed");
   就是关闭后再建立连接就会报错  怎样关闭连接,而又使下次调用connect()方法时不报错,或者对于这个问题有
  更好的解方案,请响应一下。先谢了....

解决方案 »

  1.   

    在线程开始时connect,在线程结束后close,不要反复连接、断开。
      

  2.   

    恩,在线程里面做成connect,close函数,使用线程的地方调用。不要每次发消息都从新连接
    如果一定要重新连接把你的new socket放到send函数里面(建议不要这样做,效率问题)
      

  3.   

    我请教过我的老师,他也是这么做的
    把new  socket放到send函数里面
    我也提出了效率问题
    不过他说效率问题不大请问有没有解决效率的方案....
    等待你的响应...
      

  4.   

    这样是不行的 一个socket只能连接一次,断开之后就失效了
    你如果要写成这样,你可以把new Socket(ip,port)的方法也写到循环里面
      

  5.   

    关掉之后,再 new 一个。