네트워크 프로그래밍
네트워크 프로그래밍
서버
=> 데이터를 송수신한다.
IP 주소 : 인터넷에서 컴퓨터의 주소
cmd에서 ipconfig
nslookup을 사용하면 알 수 있다.
=> nslookup naver.com
Addresses에 나온 IP주소들을 치면 naver.com에 들어갈 수 있다.
( 서버 => KT 인터넷 메인 서버 주소 )
포트 : 가상 통신 선로
0~65535 까지있다.
IP + 포트 = InetAddress라는 자료형으로 관리 (자바에서)
* 데이터를 받는 쪽은 포트를 열고 대기
-> 프로그램이 OS로부터 포트를 점유 받는다.
* 데이터를 보내는 쪽은 상대방의 IP+port를 목적지로 해서 데이터를 전달
데이터를 송수신 하기 위한 정보의 집합 => Socket 소켓
UDP / TCP
사용자 데이터그램 프로토콜 ( UDP. User Datagram Protocol )
받으라고 그냥 날리는 방식 => 못 받을 수 있다.
여러개를 그냥 날림 => 순서가 없어 받는 입장에서 난처하다.
너무 단순해서 서비스의 신뢰도가 낮다.
데이터그램 도착 순서가 바뀌거나, 중복되거나, 심지어는 통보 없이 누락시키기도 한다.
오류의 검사와 수정이 필요없을 때 사용한다.
그냥 보내기만 할 때 사용
=> 가벼운 메일이나 메신저 프로그램으로 그냥 보내기만 할때
TCP를 사용하지 않는 이유는 UDP가 더 가볍고, 더 많은 기능이 필요하지 않기 때문에.
전송 제어 프로토콜 ( TCP. Transmission Control Protocol )
무엇을 어떤 순서로 보낼지 알려주고, 보내는 방식
=> UDP보다 정확
간단한 UDP 만들어보기
Sender (발신)
Receiver (수신)
1. UDP 소켓을 이용해 상대방에게 데이터 보내기
2. UDP 소켓을 이용해 특정 포트로 나에게 오는 메시지 수신하기
1-1 사용자로부터 입력받아서 데이터 보내기
1-2 1-1을 특정 상황까지 반복("quit" 입력되면 종료)
2-1 나에게 오는 메시지를 반복해서 수신하기
1-3. 1-2를 쓰레드로 만들어서 병렬 처리로 작업
2-2. 2-1도 쓰레드로 만들어서 병렬 처리로 작업
TCP 통신하기
서버
- ServerSocet을 생성
- ServerSocet을 연결 요청을 대기 상태
serverSocket.accept();
클라이언트로 부터 연결 요청이 들어오면
연결요청대기를 하던 메소드에서 Socket객체를 하나 반환해줌
클라이언트
- 서버정보를 담아서(ip, port)
Socket객체를 생성(서버로 연결요청)
'Java > 자바 기반 웹 개발자 과정 필기' 카테고리의 다른 글
[200324.22일차] DB (0) | 2020.03.24 |
---|---|
[200323.21일차] VMWare & Oracl SQL 커맨더, SQL Developer 설치, 설정하기 (0) | 2020.03.23 |
[200320.20일차] (0) | 2020.03.20 |
[200318.18일차] 입출력 (0) | 2020.03.18 |
[200317.17일차] 예외처리 (0) | 2020.03.17 |
[200316.16일차] (0) | 2020.03.16 |
[200313.15일차] (0) | 2020.03.13 |