일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- mysql
- 타임리프Unescape
- MySQL설치순서
- 정처기실기요약
- 정보처리기사
- 이클립스없이cmd
- spring
- 타임리프유틸리티객체
- 스프링부트설정
- mysql다운로드
- HelloWorld출력
- 타임리프기본객체
- java
- mybatis
- 타임리프 표현식
- cmd에서java파일실행
- 정보처리기사실기
- 개체관계모델
- 타임리프날짜
- 타임리프URL
- git
- thymeleaf
- 타임리프SpringEL
- mysql설치하기
- 정보처리기사실기요약
- 타임리프 특징
- 타임리프변수
- ER모델
- 정처기실기
- 타임리프Escape
- Today
- Total
ye._.veloper
네트워크(Network) 본문
# 네트워크란 ?
· 여러 대의 컴퓨터를 통신 회선으로 연결한 것
➡ ex. 홈 네트워크, 지역 네트워크, 인터넷 등
☁ Server & Client
· 네트워크로 연결된 컴퓨터 간의 관계를 역할(role)로 구분한 개념
- Server : 서비스를 제공하는 프로그램 , Client의 연결을 수락하고 요청 내용을 처리 후 응답을 보내는 역할
- Client : 서비스를 받는 프로그램 , 네트워크 데이터를 필요로 하는 모든 어플리케이션이 해당된다.
☁ IP 주소
· 네트워크 상에서 컴퓨터를 식별하는 번호
- 네트워크 Adaptor(랜카드)마다 할당되어 있다.
☁ 포트(Port)
· 같은 컴퓨터 내에서 프로그램을 식별하는 번호
- Client는 서버 연결 요청 시 IP 주소와 Port 번호를 알아야 한다.
# InetAddress Class
· IP 주소를 다루기 위해 Java에서 제공하는 Class

☁ Socket Programming
· Socket을 이용한 통신 프로그래밍
☁ Socket
· Process 간의 통신에 사용되는 양쪽 끝 단
☁ TCP
· data 전송 속도가 느리지만, 정확하고 안정적으로 전달할 수 있는 연결 지향적 프로토콜
☁ UDP
· data 전송 속도가 빠르지만, 신뢰성 없는 data를 전송하는 비연결 지향적 프로토콜
☁ TCP Socket Programming
· Client와 Server 간의 1 : 1 소켓 통신
- 서버가 먼저 실행되어 클라이언트의 요청을 기다려야 하고, 서버용 프로그램과 클라이언트용 프로그램을 따로 구현해야 한다.
- Java에서는 TCP Socket Programming을 위해 java.net 패키지에서 ServerSocket과 Socket 클래스를 제공

☁ Server용 TCP Socket Programming 순서
① server의 port 번호를 정한다.
② server용 socket 객체를 생성한다.
③ client 쪽에서 접속 요청이 오길 대기한다.
④ 접속 요청이 오면 요청 수락 후, 해당 client에 대한 socket 객체를 생성한다.
⑤ 연결된 client와 입출력 stream을 생성한다.
⑥ 보조 stream을 통해 성능을 개선한다.
⑦ stream을 통해 읽고 쓴다.
⑧ 통신 종료
☁ Client용 TCP Socket Programming 순서
① server의 IP 주소와 server가 정한 port 번호를 매개변수로 하여 client용 socket 객체를 생성한다.
② server와 입출력 stream을 연다.
③ 보조 stream을 통해 성능을 개선한다.
④ stream을 통해 읽고 쓴다.
⑤ 통신 종료
☁ UDP Socket Programming
· UDP는 연결 지향적이지 않기 때문에, 연결 요청을 받아줄 server socket이 필요하지 않다.
- java.net 패키지에서 제공하는 두 개의 DatagramSocket간에 DatagramPacket으로 변환된 데이터를 주고 받는다.

① server의 port 번호를 정한다.
② DatagramSocket 객체를 생성한다.
③ 연결한 client IP 주소를 가진 InetAddress 객체를 생성한다.
④ 전송할 메시지를 byte[]로 바꾼다.
⑤ 전송할 메시지를 DatagramPacket 객체에 담는다.
⑥ 보조 stream을 통해 성능을 개선한다.
⑦ socket reference를 사용하여 메시지를 전송한다.
⑧ socket 닫기
☁ Client용 UDP Socket Programming 순서
① server가 보낸 메시지를 받을 byte[]를 준비한다
② DatagramSocket 객체를 생성한다.
③ 메시지를 받을 DatagramPacket 객체를 준비한다.
④ byte[]로 받은 메시지를 String으로 바꿔 출력한다.
⑤ socket 닫기