네트워크 프로그래밍의 개요


|서버와 클라이언트

네트워크에는 서버와 클라이언트가 존재한다. 이들은 미리 정의된 프로토콜을 이용하여서 서로 간에 통신을 한다.


|자바와 네트워킹

자바에서 네트워크 프로그래밍을 위한 패키지는 java.net이다.


URL클래스

자바에서는 URL 객체를 이용하여 URL의 주소를 나타낸다.

 URL java = new URL("http://java.sun.com/"); // 절대 경로

 URL reference = new URL(java, "reference.html"); // 상대경로


<예제>

URL문자열로부터 각가의 요소 파싱

출력결과


|URL클래스를 이용한 읽기

URL 클래스 메소드인 openStream( )을 이용하면 인터넷상의 URL에서 직접 그 내용을 입력 스트림처럼 읽을 수 있다.


<예제>

출력결과


|URLConnection 클래스

URL 객체를 생성한 후에 URL 클래스의 openConnection( ) 메소드를 호출하면 URLConnection 객체를 반환한다. 이 객체를 이용하여 외부 URL에 의하여 표현되는 서버에 접속할 수 있으며 또한 접속에 앞서서 여러 가지 통신 파라미터들을 설정할 수 있다.

try{

URL java = new URL("http://java.sun.com/");

URLConnection javac = java.openConnection( );

javac.connect = java.openConnection( );

} catch (MalformedURLException e){

} catch (IOException e){

}


TCP를 이용한 통신

 URL과 URLConnections 클래스는 인터넷상의 자원을 접근하는데 상대적으로 고수준의 메카니즘. 그러나 가끔은 저수준의 네트워크 통신 기능이 필요한 경우도 있다. 예를 들면 클라이언트-서버 응용 프로그램을 만드는 경우


|소켓이란?

하나의 포트에 하나의 소켓을 만들어 결합 


TCP를 이용한 서버 제작


서버 제작 5단걔

1. ServerSocket 객체 생성 

ex) ServerSocket server = new ServerSocket(portNumber, queueLength);

-> 포트 번호가 portNumber인 포트를 기반으로 하는 소켓을 생성

-> queueLenght : 서버에 연결되기를 기다리는 클라이언트의 최대 개수


2. accept( ) 메소드 호출

ex) Socket clientSocket = server.accept( );

-> accept( ) 메소드는 클라이언트와 연결이 되면 새로운 Socket 객체를 반환

-> 이 새로운 Socket 객체를 이용하여서 서버는 클라이언트와 상호 대화


3. 소켓으로부터 스트림 객체를 얻는다.

ex) InputStream input = clientSocket.getInputStream( );

    OutputStream output = cliendtSocket.getOutputSt

4. 상호 대화 단계

서버와 클라이언트는 스트림을 이용하여서 상호 대화한다.


5. 종료

close( ) 메소드를 호출




'Programming Language > Java' 카테고리의 다른 글

10. 데이터베이스 프로그래밍  (0) 2016.06.10
8. 입출력 - 형식 입출력  (0) 2016.06.10
7. 입출력 - 문자스트림  (2) 2016.06.09
6. 입출력-바이트스트림  (0) 2016.06.08
5. 스레드  (0) 2016.06.08

+ Recent posts