네트워크 프로그래밍
==> 서로 멀리 떨어진 두대이상의 컴퓨터가 서로 데이터를 주고 받는 프로그래밍(원격지의)
자바는 네트워크 프로그래밍을 위하여 java.net 패키지에 관련 클래스를 제공한다.
https://docs.oracle.com/javase/8/docs/api/java/net/package-summary.html
용어 정리
- ip Address : 인터넷 상의 컴퓨터 중에 특정 컴퓨터를 구별하기 위한 식별자. 즉 유일한 컴퓨터를 구별하기 위해 사용
cf) ip주소확인법 : cmd에서 c:/> ipconfig
- Domain Name : 어떤 서비스를 제공하는 서버의 아이피 주소를 기억하기 어렵기 때문에, 그 숫자를 대신하는 문자로 이용하도록 한다. 그것을 Domain Name 이라고 한다.
- port 번호 : 하나의 컴퓨터에서 2개 이상의 네트워크 프로그램이 동시 실행 될 수 있다.(카톡이나 네이트온 둘다 실행 가능) 그러면, 하나의 컴퓨터에서 이 프로그램들을 구별하기 위한 식별자가 필요하다. 그것의 역할이 port 번호이다.
- Server : 서비스를 제공하는 컴퓨터 혹은 프로그램
- Client : 서비스를 제공받는 컴퓨터 혹은 프로그램
네트워크 통신
- 서로 데이터를 주고 받는 것
ㅇ 네트워크 통신 2가지 방법
- TCP 방식
- 마치 우리 생활의 전화로 통신하는 것과 같은 방식
- 상대방이 받을 준비가 되면 서로 할 말을 할 수 있다.
- 이와 같은 방식으로 멀리 떨어져 있는 두대의 컴퓨터가 서로 통신을 위해 서로 연결을 맺을 후 그 연결 회선을 통해 데이터를 주고 받는다. 먼저 연결을 하고 상대방이 데이터를 받을 준비가 된 상태에서 통신하기 때문에 데이터를 잃어 버릴 염려가 적다.
- (장점) 신뢰성이 높다. 보장된다.
- (단점) 그러나 언제나 네트워크 연결이 되어 있어야 한다
네트워크 부담이 된다. - 자바, TCP 방식을 위해 ServerSocket, Socket 클래스 제공
- UDP 방식
- 편지를 주고 받는 방식과 유사
- 상대방과 연결을 맺은 후 통신 하는 것이 아니라 상대방의 데이터를 받을 준비가 되었는지 확인하지 않고 데이터를 막 보내는 방식. 때에 따라 데이터를 잃어 버릴 염려가 있다. 상대방과 연결을 맺지 않고 통신하기 때문에 보내고자 하는 데이터와 이 데이터가 어디로 가야 할지 목적지를 하나의 세트로 만들어야 한다. 그것을 패킷이라고 한다. 그래서 UDP 방식의 통신은 패킷 단위로 통신이 이루어 진다.
- (장점) 언제라도 네트워크 연결이 안 되어 있어도 된다.
네트워크 부담이 낮다 - (단점) 신뢰성이 낮다, 보장 안된다.
- 자바, UDP방식을 위해 DataGramSocket, DataGramPacket 클래스를 제공
반응형
'Java | spring > Java Basic' 카테고리의 다른 글
Optional 제대로 알기, 면접 대비! (+간단 실무 코드 예시) (0) | 2021.06.03 |
---|---|
Mac java 여러 버전 설치 (0) | 2021.05.26 |
Java class file, 자바 파일 클래스 주요 메소드 (0) | 2019.05.08 |
Java Stream, 파일 입출력의 기본 (0) | 2019.05.08 |
Java 파일처리 기본 : 입출력, 스트림 (0) | 2019.05.08 |
댓글