네트워크 프로그래밍의 개요
|서버와 클라이언트
네트워크에는 서버와 클라이언트가 존재한다. 이들은 미리 정의된 프로토콜을 이용하여서 서로 간에 통신을 한다.
|자바와 네트워킹
자바에서 네트워크 프로그래밍을 위한 패키지는 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 |