: 지역(=국가)네트워크를 통신(신호를 주고 받는 것)으로 연결한 것
네트워크란: 여러대의 컴퓨터들을 통신회선으로 연결한 것. 그물망처럼 연결된 통신망을 말함
-ISDN (intergrated Services Digital Network) : 종합정보 통신망(=BISDN) 전화, 팩스, 데이터 통신, 비디오텍 등 통신관련 서비스를 종합하여 다루는 통합 서비스 디지털 통신망, 디지털 전송방식과 광섬유 케이블 사용.
프로토콜(protocol) : 통신을 주고 받기 위한 통신 규칙, 컴퓨터와 컴퓨터도 서로 이해 할 수 있는 언어, 공용된 언어를 사용 해야 한다는 것
IP (Internet protocol address): 네트워크상에서 장치들이 서로 통신을 하기 위한 규칙에 필요한 서로를 식별하기 위한 고유 주소 또는 특수번호를 말함.(집주소처럼 컴퓨터 주소라고 보면 됨. 하나의 랜카드 당 한 개의 ip가 할당되어 있다.)
-- 랜카드 : 네크워크를 사용하기 위한 어댑터 역할을 하는 장치
IP는 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는 지 보장하지 않는다. 전송과정에서 패킷이 손상될 수도 있고, 같은 호스트에서 전송한 패킷의 순서가 뒤죽박죽이 될 수도 있고, 같은 패킷이 두번 전송될 수도 있으며, 아예 캐핏이 사라질 수도 있기 때문에 패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜과 같은 IP의 상위 프로토콜을 이용해야 한다.
전송 제어 프로토콜(Transmission Control Protocol, TCP, 문화어: 전송조종(제어)규약(규칙)) : 웹 브라우저들이 월드 와이드 웹(www 대부분 웹이라고 함)에서 서버에 연결할 때 사용되며, 이메일 전송이나 파일 전송에도 사용된다.
포트(port) : 같은 IP에서 접근해야하는 프로그램이 여러개일 경우 해당 프로그램에 대해 접근하기 위해 부여된 프로그램주소값이라고 생각하면 된다.
서버 : 서비스를 제공하는 프로그램을 의미함.
클라이언트 ; 서비스를 요청하고 받는 프로그램을 의미함
소캣(socket) 프로그램이 네트워크에서 데이터를 통신할 수 있도록 연결해주는 연결부
InetAddress 클래스
: InetAddress 클래스는 IP 주소를 표현한 클래스임.
: IP 주소 뿐만 아니라 도메인을 이요하여 IP 정보를 가져올 수도 있다.
: 자바에서는 모든 IP 주소를 InetAddress 클래스를 사용한다.
: default로 된 생성자가 하나 존재하나 객체 생성 불가
: 호스트 이름과 호스트에 대응하는 IP 주소를 알 수 있는 메서드를 제공한다.
:getAllByName(String host) : 매개변수 host에 대응되는 InetAddress[] 클래스 배열을 반환함
: getAddress(byte[] addr) : 매개변수 host, addr로 생성한 InetAddress 클래스 객체를 반환함
: getByAddress(String host, byte[] addr) : 매개변수 host, addr 로 생성한 InetAddress 클래스 객체를 반환함
: getByName(String host) : 매개변수 host에 대응되는 InetAddress 클래스 객체를 반환함
: getLocalHost() : 로컬호스트의 InetAddress 클래스 객체를 반환함
Localhost(로컬호스트)는 서버의 기능을 제공하는 자신의 컴퓨터를 의미한다.
IPv4에서의 IP 주소는 127.0.0.1이다 (32비트 표현)
** IPv6은 32비트의 IPv4의 값의 표현이 제한적이라 보완되어 나온 물리적 주소 표기방법임.(128비트)
서버 클라이언트의 요청을 받기 위한 준비를 한다.(ServerSocket)
예시 : Socket echoServer = new ServerSocket(4000); // 포트번호만 지정함.
클라이언트 : 서버에 접속 요청을 한다.(Socket)
예시 : Socket socket = new Socket("127.0.0.1",4000); // 서버의 아이피 주소와 포트번호 지정.
서버 : 클라이언트의 요청을 받아 들인다.(accept)
Socket socket = echoServer.accept();
클라이언트 : 서버에 메시지를 보낸다.(BufferedWriter)
서버 : 클라이언트가 보낸 데이터를 출력한다.(BufferedReader)
서버: 클라이언트에 메시지를 보낸다.(BufferedWriter)
클라이언트: 서버가 보낸 베시지를 출력한다.(BufferedReader)
서버, 클라이언트 모두 종료 : 종료한다.(socket.close())