본문 바로가기
Develop/Java

JAVA 네트워크 프로그래밍

by J0DEV 2021. 8. 9.
반응형

NetworkEx.zip
다운로드

네트워크 개요

1. IP Address

IP Address란?

  • 인터넷에 접속 가능한 컴퓨터들을 구분하기 위해 부여한 숫자 주소
  • 0~255사이틔 10진수 4개로 구성됨(4바이트)

 

2. TCP/UDP Port

TCP/UDP Port

  • TCP : Transmission Control Protocol Port
  • UDP : User Datagram Protocol Port
  • 컴퓨터 상호간에 통신을 위해 IP주소와 포트가 필요하다.
  • 포트는 하나의 IP Address 내에 개별적으로 부여된 통신 프로세스이다.
  • TCP와 UDP는 각각 0~65535개의 포트가 할당된다.
  • TCP는 통신 단말간에 연결을 설정하고 데이터를 교환하는 방식이다.
  • UDP는 통신 단말간에 연결 설정 없이 데이터를 교환하는 방식이다.
  • 포트 0~1024는 시스템이 주로 사용하는 영역이므로 임의로 사용하지 않도록 한다.
  • 포트는 중복 사용될 수 없으므로 이미 사용중인 포트를 재차 사용하려 할 경우 문제가 발생할 수 있다.

웹서버와의 통신

  • 웹서버는 일반적으로 TCP 포트 80번을 사용하여 클라이언트의 요청을 기다린다.
  • 클라이언트 프로그램은 웹 서버의 IP 주소와 포트번호를 알고 있어야 접속이 가능하다.
  • 접속이 이루어지면 준비된 클래스를 이용해어 웹서버에서 보내주는 문자열을 전송 받는다.

InetAddress, URL 클래스

1. InetAddress 클래스

  • IP Address에 대하여 모델링한 클래스이다.
  • IP Address를 프로그래밍에 사용할 수 있도록 한다.
  • 생성자가 없다.
  • static 메소드인 getByName()에 의해 객체 생성되며 인자로서 호스트명 또는 IP 주소를 넘겨주어야 한다.
  • 반드시 예외 처리를 해주어야 한다.

 

2. URL 클래스

URL 내요

  • URL(Uniform Resource Locator) : 인터넷 상의 자원을 가리키는 표현 방식이다.
  • URL을 이용하여 인터넷 상의 다양한 프로토콜과 자원을 표기할 수 있다.
  • 구성요소 : 프로토콜://호스트주소:[포트번호]/파일#섹션

URL 클래스

메소드 내용 메소드 사용
String getProtocol() 프로토콜 반환 http
String getHost() 호스트명을 반환 www.naver.com
Int getPort() 포트번호를 반환 80
String getFile() 파일명을 반환 Index.html
String getRef() 섹션번호를 반환 null

 

3. 예제

 

 

 

 


소켓 프로그래밍

1. Socket의 개요

소켓의 개요

  • TCP/IP의 복잡한 프로토콜을 단순화시켜 네트워크 프로그램을 편리하게 작성할 수 있도록 한 API이다.
  • 자바에서 소켓을 이용하려면 java.net 패키지를 import 해야한다.
  • 소켓 쿨래스는 서버에 접속하기 위한 클라이언트를 구현하는 데 주로 사용한다.

 

2. 서버 소켓

서버 소켓

  • 서버측 프로그램은 클라이언트 프로그램에서의 접속 요청을 상시 대기하고 있어야 하는데 이러한 일을 담당하는 API를 가리킨다.
  • 자바에서 서버소켓의 기능은 ServerSocket 클래스에 의해 제공된다.
  • ServerSocket 클래스는 특정 포트를 열어놓은 상태에서 대기하다가 클라이언트의 접속 요청이 있으면 이를 새로운 소켓으로 연결하여 처리한다.

 

3. 예제

 

 

반응형