Post

네트워크

서버기반 모델 / P2P 모델

서버기반 모델
전용서버를 두고 서비스를 제공하는 것
P2P 모델
클라이언트가 서버역할을 동시에 수행하는 것

12-1

InetAddress

자바에서는 IP주소를 다루기 위한 클래스로 InetAddress 클래스를 제공한다.

메서드설명
byte[] getAddress()IP주소를 byte배열로 반환
static InetAddress[] getAllByName(String host)도메인명에 지정된 모든 IP주소를 배열에 담아 반환
static InetAddress getByAddress(byte[] addr)byte배열을 통해 IP주소를 얻음
String getCanonicalHostName()FQDN(fully qualified domain name)을 반환
String getHostAddress()호스트의 IP주소를 반환
String getHostName()호스트의 이름을 반환
static InetAddress getLocalHost()localhost의 IP주소를 반환
boolean isMulticastAddress()IP주소가 멀티캐스트 주소인지 확인
boolean isLoopbackAddress()IP주소가 loopback 주소(127.0.0.1)인지 확인

URL / URLConnection

URL
인터넷에 존재하는 여러 서버들이 제공하는 자원에 접근할 수 있는 주소를 표현한 것으로 URL을 다루기 위해 자바에서는 URL 클래스를 제공한다.
URLConnection
어플리케이션과 URL간의 통신연결을 나타내는 클래스의 최상위 클래스로 추상 클래스이다. 이 클래스를 상속받아 구현한 대표적인 클래스로 HttpUrlConnection 클래스가 있다.

TCP / UDP

12-2

TCP 소켓 프로그래밍

서버 프로그램

  1. 특정 포트를 지정한 ServerSocket을 생성한다.
  2. 무한루프로 연결요청을 기다린다.
  3. 연결요청이 오면 Socket이 생성되고 생성된 Socket의 입출력 스트림을 이용해 통신한다.

클라이언트 프로그램

  1. 서버 프로그램의 IP와 포트를 이용해 Socket을 생성한다.
  2. Socket의 입출력 스트림을 이용해 통신한다.

UDP 소켓 프로그래밍

UDP 소켓 프로그래밍의 경우 비연결기반이기 때문에 서버소켓이 없다.

서버 프로그램

  1. 특정 포트를 지정한 DatagramSocket을 생성한다.
  2. 데이터를 송신하거나 수신할 때 DatagramPacket을 만들고 DatagramSocket의 송수신 메서드를 이용해 통신한다.

클라이언트 프로그램

  1. 서버 프로그램의 IP와 포트를 이용해 DatagramSocket을 생성한다.
  2. 데이터를 송신하거나 수신할 때 DatagramPacket을 만들고 DatagramSocket의 송수신 메서드를 이용해 통신한다.
This post is licensed under CC BY 4.0 by the author.