title: What is the reason for time_wait connection increasing in java?
body: <pre><code> class LogWriter implements Runnable {
  
  Socket client;
  
  private static ThreadLocal&lt;Date&gt; date = new ThreadLocal&lt;Date&gt;() {
  @Override
  protected Date initialValue() {
      return new Date();
  };
  };
  
  private static ThreadLocal&lt;SimpleDateFormat&gt; formatter = new ThreadLocal&lt;SimpleDateFormat&gt;() {
  @Override
  protected SimpleDateFormat initialValue() {
      return new SimpleDateFormat("yyyy_MM_dd");
  };
  };
  
  public LogWriter(Socket client) {
  this.client = client;
  }
  
  public void run() {
  try {
      write(this.client.getInputStream(), new File(
          CentralizedLogging.logsDir + File.separator
              + client.getInetAddress().getHostName() + "_"
              + getFormattedDate() + ".log"));
      this.client.close();
  } catch (Exception e) {
      try {
      e.printStackTrace();
      write(new ByteArrayInputStream(e.getMessage().getBytes()),
          new File(CentralizedLogging.logsDir + File.separator
              + "centralLoggingError.log"));
      } catch (IOException io) {
  
      }
  }
  }
  
    public synchronized void write(InputStream in, File file)
      throws IOException {
  RandomAccessFile writer = new RandomAccessFile(file, "rw");
  writer.seek(file.length()); // append the file content into existing if it not exist creating a new one.
  writer.write(read(in));
  writer.close();
  }
  
  public static byte[] read(InputStream in) throws IOException {
  ByteArrayOutputStream out = new ByteArrayOutputStream();
  int read = -1;
  byte[] buffer = new byte[1024];
  read = in.read(buffer);
  do {
      out.write(buffer, 0, read);
  } while((read = in.read(buffer)) &gt; -1);
  return out.toByteArray();
  }
  </code></pre>
  
  <p>Main Method </p>
  
  <pre><code>   public static void main(String[] args) throws InterruptedException,
      IOException {
  // CentralizedLogging centralLogServer = new CentralizedLogging(args[0],Integer.parseInt(args[1]));
  // new Thread(centralLogServer).start();
  long start = System.currentTimeMillis() + 1000 * 20 * 60;
  while(start &gt;= System.currentTimeMillis()) {
      Socket client = new Socket("bharathi-1397", 10000);
      OutputStream os = client.getOutputStream();
      DataOutputStream outToServer = new DataOutputStream(os);
      outToServer
          .write("Centralized Logging is working......".getBytes());
      client.close();
  }
  }
  </code></pre>
  
  <p>I am properly closed connection . But time_wait connections is increasing . I have take a snap shot from my terminal i am posted one portion of it . Is am missing any thing ?</p>
  
  <pre><code> tcp6       0      0 127.0.0.1:46146         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:57645         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:47961         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:56716         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:49469         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:54078         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:51626         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:50143         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:59214         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:54192         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:53436         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:54547         127.0.0.1:10000         TIME_WAIT   -               
   tcp6       0      0 127.0.0.1:55032         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:51273         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:48381         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:47532         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:56811         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:55293         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:56664         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:49242         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:51225         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:59265         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:59378         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:47997         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:47955         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:59453         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:48092         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:52462         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:59579         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:54921         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:55675         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:51140         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:57321         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:51656         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:54740         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:53600         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:59862         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:54766         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:59062         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:55702         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:50942         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:53732         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:52757         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:56430         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:49179         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:48689         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:53313         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:51161         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:57033         127.0.0.1:10000         TIME_WAIT   -               
  tcp6       0      0 127.0.0.1:58607         127.0.0.1:10000         TIME_WAIT   - 
  </code></pre>
  
  <p>It causes any problem to my server ?. What is the reason for this ? . </p>