11번째 줄의 포트를 신경써주시고.. 이클립스 컴파일후 재 컴파일 하면 문제가 생깁니다. 프로세스가 정상적으로 종료되지 않고 포트가 열려있어서 발생하는 문제입니다.!
해결방법은.. 프로세스종료
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server_Socket {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
try {
serverSocket = new ServerSocket(9000);
System.out.println("1 st");
socket = serverSocket.accept();
System.out.println("2 st");
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
byte arr[] = new byte[100];
in.read(arr);
System.out.println(new String(arr));
String str = "hello world";
out.write(str.getBytes());
} catch (Exception e) {
// TODO: handle exception
}
// finally 윗쪽의 예외 처리가 있음에도 불구하고 무조건 실행해주는 구문
finally {
try {
socket.close(); //socket. 그렇지 않으면 포트 열어져 있음
} catch (Exception ignored) {
}
try {
serverSocket.close();
} catch (Exception ignored) {
}
}
}
}