Network

1.     주요용어

A.     Network?

: 서로 다른 장소에 있는 디바이스를 연결하여 통신을 할 수 있는 환경

: Lan < Wan < internet(WWW)

 

B.     Protocol

: 통신할때 데이터를 구분하기위한 꼬리표 (통신규약 언어)

 

C.     Port

: 컴퓨터의 출입구. (통신통로)

 

D.     패킷(packet)

: 데이터 전송의 최소 전송단위 ( 다양한크기, default = 128byte)

 

E.     Router

: 패킷이 목적지로 잘 가도록 안내하는 안내자.

스위치(Switch) : 패킷의 방향타 역할

 

F.     GateWay / firewall

GateWay : 내부네트웍과 외부네트웍의 연결점(관문)

Firewall : 내부자원을 보호하고, 불필요한 외부자원을 막는 보안장치

 

G.     URI(URL)

: URL을 주로 사용.

: 네트워크상의 특정한 자원에 대한 식별자( ex :프린터,스캐너,이미지파일)

H.     OSI 7Layer

 

 

 자바 api 문서 참조 : java.net

java.net
클래스 URL

java.lang.Object

  java.net.URL

모든 구현된 인터페이스:

Serializable

 

Constructor

URL url = new URL(String url);

 

Method

url.getProtocol(); : 사용 protocol

url.getHost()        : Server Address

url.getPort()         : Server port

url.getPath()          : 경로

url.openStream(); (return : InputStream)

 

-실습 1 : naver 이미지 가져오기-

 

//입력시작

InputStream is = url.openStream();

BuffredInputStream bis = new BuffredInputStream(is);

// 입력끝

//출력

FileOutputStream fos =

                           new FileOutputStream(“c:/naver.gif”);

byte[] b = new byte[1024];

int n =0;

while((n=bis.read(b,0,b.length)) != -1){

             bos.write(b,0,n);

             bos.flush();

}

 

 

java.net
클래스 InetAddress

java.lang.Object

  java.net.InetAddress

모든 구현된 인터페이스:

Serializable

직계의 기존의 서브 클래스:

Inet4Address , Inet6Address

 

 

static InetAddress

getByName (String  host)
         
지정된 호스트명을 가지는 호스트의 IP 주소를 취득합니다

 String

getHostName ()
         
IP 주소에 대응하는 호스트명을 취득합니다.

static InetAddress

[]

getAllByName (String  host)
          호스트명을 지정하면(), 시스템으로 설정되어 있는

네임 서비스에 근거해 그 IP 주소의 배열을 돌려줍니다.

 

InetAddress 생성자가 없어요~

그래서 메소드를 사용해서 만들어요~

InetAddress ia = InetAddress.getByName(); : getByName() or getAllByName()

 

 

***************************************************************************

지금까지 했던거 정리

***************************************************************************

 

1.       URL : 네트워크상의 접속한 컴퓨터의 프로토콜, Host , port , file등의

정보를 알수 있다.

URL 주요 메소드

1.       getProtocol()

2.      getHost()

3.      getPort()

4.      getFile()

5.      getPath()

6.      openStream()

 

2.      URLConnection

1.       기능 : 객체생성시 URL 자원과 연결이 되어지기 때문에

        : 자원의 구체적인 Content 정보를 있다.

2.      주요 메소드

                                    i.              getContentType();

                                 ii.              getContentLength()

                               iii.              getInputStream()

                                iv.              getOutputStream()

 

3.      InetAddress

1.       기능 : 네트워크상의 특정 호스트에 대한 IP 알아낼 있는

클래스

2.      주요 메소드:

1.        getByName(String host)

2.       getAllByName(String host)

3.       getHostAddress()

 

통신 방식.

 

 

1.       TCP 기반의 소켓 통신

 1) 연결 지향 통신 방식

 2) 신뢰적.

 3)

 4)

 5) 사용예) : 채팅, 실시간 데이터전송, 메신저,네트웍게임

 

 

 

 

2.      UDP 방식의 DatagramSocket 방식

1)      비연결 지향 통신 방식

2)     신뢰적

3)     DatagramSocket, DatagramPacket 이용하여프로그래밍

4)프로그램 절차

<<Server>>                                  <<Client>>

DatagramSocket ds -------------------------------DatagramSocket ds

DatagramPacket dp-------------------------------DatagramPacket dp..

ds.receive(dp)--------------------------------------ds.send(dp)

5) 사용예): 인터넷방송

채팅프로그램까지만….

 

채팅만들기

 

1. 서버 셋팅

1. 서버소켓만들기

ServerSocket ss = new ServerSocket(int port);

l  Port잡을 Tip

1~1024 안잡는 것이 좋다.

다른 protocol 충돌날 가능성때문.

 

2.클라이언트의 접속

: 클라이언트가 접속해서 Socket 객체 생성

Socket s =  ss.accept();

 

3.소켓어서 읽어들일 목적으로 InputStream생성.

InputStream is = s.getInputStream();

DataInputStream dis = new DataInputStream(is);

 

4. Client에서 전송된 문자열 출력

: String str = null;

while((str=dis.readUTF())!=null){

System.out.println("Client : "+str);

}

 

 

 

 

 

2. Client Setting

 

 

 

 

Server                                                                Client

ServerSocket ss

ss.accept()                            new Socket(ip,port)

Socket s                                Socket s

                           IO 객체를 이용하여 통신

 

 

다른 카테고리의 글 목록

자바 기본 공부/네트워크 개발 카테고리의 포스트를 톺아봅니다