네트워크
- 서버 : 서비스를 제공
- 클라이언트 : 서비스를 요청
IP주소 : 컴퓨터 주소
- 해당 컴퓨터를 찾을대 필요한 주소
- IP 주소확인 : 명령프롬프트에서 ipconfig
포트번호 : 프로세스 주소
- 컴퓨터 에서 해당 프로세스를 찾을때 필요한 번호
- 웹브라우저 HTTP 포트 : 80
- 메일서버 SMTP : 25
- FTP 포트 : 21
- 오라클 포트 :1521
도메인 네임
- DNS 서버 : 도메인 네임을 IP주소로 변환해 주는 서버
- 자바는 IP주소를 다루도록 InetAddress클래스 제공
InetAddress 클래스
InetAddress ita = InetAddress.getByName("URL값");
getByName(String hostName) : 전달받은 이름(hostName)으로 지정된 컴퓨터의 InetAddress겍체를 반환
getAllByName(String hostName) : 객체를 배열로 반환
getAddress() : IP주소를 나타내는 4개의 바이트 배열로 반환
getHostAddress() : 호스트의 IP주소를 문자열로 반환
getHostName() : 호스트의 이름 문자열로 반환
URL클래스 : 입력만
- URL 클래스는 URL을 이용하여 연결 및 입력 스트림을 형성
URL url = new URL("http://www.hantit.co.kr/") InputStream is = url.openStream();
URL Connection: 입출력 가능
URLEncoder, URLDecoder클래스
- URLEncoder클래스는 데이터를 웹서버에서 요구하는 자료형으로 변환하는 역활을 한다.
프로토콜
- 서버와 통신하기 위한 규약
- 패킷 : 데이터를 주고 받을때 이 데이터를 일정 크리로 쪼개져서 패킷이라는 형태의 틀에 담겨져서 이동하낟.
- TCP,UDP 차이점: TCP 안전성 보장, UDP 안전성 비보장,빠름
TCP/IP
- 연결지향
- 신뢰성
- 순서보장
- 연결과정이 필요해 느림
TCP 이용한 통신절차
서버는 서버소켓을 사용해서 서버컴퓨터의 특정포트에서 클라이언트의 연결 요청을 처리할 준비를 한다.
즉 서버는 먼저 실행 되어서 클라이언트의 연결을 기다린다.클라이언트는 연결할 서버의 IP와 포트번호로 소켓을 생성해서 서버에 연결을 요청한다.
TCP프로토콜이 연결 지향이라서 데이터 전송 전 반드시 연결과정이 있다.서버 소켓은 클라이언트의 요청을 받으면 새로운 소켓을 생성해서 클라이언트의 소켓과 연결되도록 한다.
이제 클라이언트와 소켓과 새로 생성된 서버의 소켓은 원래 서버소켓과 관계없이 1:1 통신이 가능해진다.서버는 클라이언트가 보낸 데이터를 받아서 처리한다.
서버는 처리한 데이터를 클라이언트에 보낸다.
클라이언트는 서버가 보낸 데이터를 받아서 적절하게 처리한다.
TCP 소켓클래스
- ServerSocket 클래스 : 서버에서 사용하는 클래스 포트와 연결되어 외부의 연결요청을 기다린다.연결요청이 오면 소켓을 새로 생성해준다.
- Socket 클래스 : 서버,클라이언트 모두 사용, 프로세스 간의 통신을 담당한다. 입력스트림과 출력스트림을 사용하여 통신
소켓을 이용한 서버 제작
- 서버 소켓 생성
ServerSoker serverSocker = new ServerSocket(5550);
- 이미 사용 중인 포트 번호를 지정하면 오류 발생
- 클라이언트로 부터 접속 기다림
Socket socket = serverSocker.accept();
- accept() 메소드는 연결 요청이 오면 새로운 Socket객체 반환
- 서버에서 클라이언트와의 데이터 통신은 새로 만들어진 Socket객체를 통해서 이루어짐
- 네트워크 입출력 스트림 생성
- 송신과 수긴
- 네트워크 접속 종료
- 서버 응용 프로그램 종료
UDP
- 비연결지향
- 손실있음
- 실시간 멀티미디어 데이터 처리
- 연결작업이 없어서 빠름
'아줌마의 국비학원생활' 카테고리의 다른 글
[23][24][25][26][27][28][29][30][31] html,css,javascript 수업중 (0) | 2023.05.18 |
---|---|
[22일차] 시험 - 내용없음 (0) | 2023.05.18 |
[20일차] 파일입출력 (0) | 2023.05.15 |
[19일차] TreeSet 클래스, Map 인터페이스, Stack 클래스 (0) | 2023.05.12 |
[17일차] 제네릭, 기본 클래스 (0) | 2023.05.12 |