본문 바로가기

Java/자바 기반 웹 개발자 과정 필기

[200319.19일차] 네트워크 프로그래밍

반응형

 

 

네트워크 프로그래밍

 

 

네트워크 프로그래밍

 

서버

=> 데이터를 송수신한다.

 

 

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 만들어보기

 

 

DatagramSocket을 사용할 때도 try catch문을 사용해야된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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객체를 생성(서버로 연결요청)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형