public static void main(String[] args) {
System.out.println("서버의 수신이 대기 중 입니다...");
try {
ServerSocket server = new ServerSocket(2233);
while (true) {
String IP ="";
try {
Socket client = server.accept();
IP= client.getRemoteSocketAddress().toString();
System.out.println("[IP :" + IP + "] 의 클라이언트가 접속하였습니다.");
}catch(Exception ea) {
System.out.println("[IP :" + IP + "] 의 클라이언트 연결이 끊어졌습니다.");
}
}
} catch (Exception ea) {
System.out.println("전체적인 서버 처리 도중 오류가 발생했습니다.\n" + ea.getLocalizedMessage());
}
}
특히 사용자가 접속하면 접속한 클라이언트에 대한 정보는 Socket에 담깁니다. 이 Socket 클래스를 통해서 클라이언트와의 통신을 진행할 수 있으며, 클라이언트 정보를 추가적으로 가져올 수 있습니다.
참고 기본적으로 ServerSocket 및 Socket은 java.net 패키지 안에 있는 클래스를 참조해야 합니다. 참조를 하기 위해서 마우스를 빨간 밑줄에 올린 뒤 Import 를 하거나, 상단에 다음 소스코드 두개를 넣어야 합니다.
import java.net.ServerSocket;
import java.net.Socket;
클라이언트로 접속을 해 보자.
이전에 연 서버에 접속을 하기 위해서는 Socket클래스를 사용하면 됩니다. Socket 클래스 생성자의 인자는 다음과 같으며, 다음 클래스의 인스턴스를 생성하는 순간 바로 서버에 접속을 시도합니다. 서버 접속에 실패하는 경우 예외를 발생하며 소스코드 구문을 빠져나갑니다.