package ch01_socket;
import java.net.ServerSocket;
import java.net.Socket;
/*
* # 서버, 클라이언트
* → 서버 : 클라이언트에게 네트워크를 통해서 서비스를 제공하는 시스템.
* 클라이언트 : 서버와 대응되는 개념으로, 서비스를 사용하는 사용자.
*
* # Socket
* → 서버와 클라이언트 간에 통신을 할 수 있도록 해주는 연결 통로.
* → 소켓은 특정 IP 포트 번호와 결합.
* → 클라이언트는 Socket을 생성하고, 서버는 ServerSocket을 생성한 후에 이를 사용해서 Socket을 생성.
*
* # PORT
* → 0~65535까지 사용.
* > 0~1023 : well-known port
* 1024~49151 : 서버 소켓으로 사용.
* 49152~65535 : 동적 포트.
*/
public class ExServer {
public static void main(String[] args) {
// 서버
ServerSocket listener = null;
Socket socket = null;
try {
listener = new ServerSocket(10000); // 서버 소켓 생성.
System.out.println("- Server 준비 -");
socket = listener.accept(); // 클라이언트부터 연결 요청 대기.
System.out.println("접속 정보 : " + socket.toString());
} catch (Exception e) {
System.out.println("서버 error");
} finally {
try {
if(socket != null) socket.close();
if(listener != null) listener.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
package ch01_socket;
import java.net.Socket;
public class Exclient {
public static void main(String[] args) {
// 클라이언트
Socket socket =null;
try {
socket = new Socket("localhost",10000);
} catch (Exception e) {
System.out.println("클라이언트 error");
} finally {
try {
if(socket!=null) socket.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}