용어
Host: 서버 이름
eg) www.이름이 들어감.com
DNS: 도메인 이름을 IP 주소로 변환하는 시스템
IP 주소: 장치를 식별하는 고유한 숫자 주소
- 공인 IP: 인터넷에서 고유하게 식별됨
- 사설 IP: 내부 네트워크용
내 IP 주소 확인하는 법!
윈도우 명령창에 ipconfig -> IPv4 주소 확인
port: 하나의 IP 주소 내에서 여러 프로세스를 구분하는 번호
- 같은 포트에 동시 접근 불가
URL: 웹 자원의 전체 경로
Protocol: 통신 규칙, 데이터 전송 방식
eg) HTTP, TCP
TCP
연결 지향: 통신 전에 1:1 연결을 먼저 맺음 - 통신 가능한지도 확인, 잘 받았는지도 확인
두 시스템 간에 신뢰성 있는 데이터 전송 관장
자신을 가리키는 주소: 127.0.0.1 (localhost)
IP: Internet Protocol
송신 호스트와 수신 호스트가 데이터를 주고 받는 것을 관장
주소가 숫자로 구성됨 -> DNS(Domain Name Server) 문자열로 된 도메인 이름으로 변환
서버
포트를 열어두고 클라이언트의 연결 요청을 기다림
Java에서 ServerSocket 클래스 사용
- accopt() 접속요청 받기
- close() ServerSocket 닫기
클라이언트
서버의 주소를 알고 서버에 연결을 요청
Java에서는 Socket 클래스 사용
- getInputStream() 입력 스트림 반환
- getOutputStream() 출력 스트림 반환
UDP
비연결 지향: 연결 과정 없이 그냥 데이터를 보냄 - 냅다 그냥 보냄
간단하고 빠른 속도의 전송 관장
Socket 프로그래밍
1. 서버는 서버 소켓을 생성하고 클라이언트 연결 요청을 기다림 (Listen)
SocketSocket serverSocket = new ServerSocket(포트번호);
2. 클라이언트가 서버에게 연결 요청
Socket s = new Socket("서버 IP", 포트번호);
3. 서버가 연결 요청 수락 (accept)
Socket socket = serverSocket.accept();
4. 네트워크 입출력 스트림 생성
스트림: 데이터가 흐르는 통로
- InputStream: 데이터를 읽는(입력받는) 통로
- OutputStream: 데이터를 쓰는(출력하는) 통로
Scanner input = new Scanner(socket.getInputStream());
PrintWriter output = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
인코딩 방식 선택 가능
포트 열어주는 법
Window 방화벽 설정에서 "고급설정"
인타운드 규칙에 새 규칙 -> 포트 -> TCP -> 포트번호 입력
'JAVA' 카테고리의 다른 글
| [JAVA] Spring Boot - 1 (0) | 2025.11.18 |
|---|---|
| [JAVA] DB (0) | 2025.11.16 |
| [JAVA] GUI & Thread - 알낳기 (0) | 2025.10.31 |
| [JAVA] 중간고사 대비 (0) | 2025.10.19 |
| [JAVA] 디자인 패턴 - 템플릿 메소드 (0) | 2025.10.17 |