java socket server 프로그램시 setReuseAddress()

eehiddo의 이미지


java socket server 프로그램시
setReuseAddress() 사용법입니다.

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketTimeoutException;
public class TEST extends Thread {
  private ServerSocket serverSocket;
 
  public TEST () throws IOException {
	    try {
 
		    serverSocket = new ServerSocket();
		    InetAddress Address = InetAddress.getLocalHost();
		    SocketAddress addr = new InetSocketAddress(Address,8011);
		    System.out.println("SO_REUSEADDR is enabled: " + serverSocket.getReuseAddress());
		    serverSocket.setReuseAddress(true);
		    System.out.println("SO_REUSEADDR is enabled: " + serverSocket.getReuseAddress());
		    serverSocket.bind(addr);
 
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
 
  }
 
  public void run() {
 
    while (true) {
      try {
        System.out.println("Waiting for client on port " + serverSocket.getLocalPort() + "...");
        Socket client = serverSocket.accept();
        System.out.println("Just connected to " + client.getRemoteSocketAddress());
        client.close();
      } catch (SocketTimeoutException s) {
        System.out.println("Socket timed out!");
        break;
      } catch (IOException e) {
        e.printStackTrace();
        break;
      }
    }
  }
 
  public static void main(String[] args) {
    try {
      Thread t = new TEST ();
      t.start();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}