관리 메뉴

프로그래밍 삽질 중

서버와 클라이언트 설명 및 예시(2) - URL 위주 본문

카테고리 없음

서버와 클라이언트 설명 및 예시(2) - URL 위주

평부 2021. 3. 12. 23:16

※ URL : 인터넷에서 접근 가능한 자원의 주소를 일관되게 표현할 수 있는 형식

- URL 형식 : <프로토콜명>://<도메인명>/파일 이름 ex) https://www.tistory.com/index.html

 

TISTORY

나를 표현하는 블로그를 만들어보세요.

www.tistory.com

※ URL 클래스 생성자

1) URL(String spec) : 문자열이 지정하는 자원에 대한 URL 객체 생성

2) URL(String protocol, String host, int port, String file)

: 프로토콜 식별자, 호스트 주소, 포트 번호, 파일 이름이 지정하는 자원에 대한 URL 객체 생성

3) URL(String protocol, String host, String file)

: 프로토콜 식별자, 호스트 주소, 파일 이름이 지정하는 자원에 대한 URL 객체 생성

4) URL(URL context, String spec) : URL 객체 context에 대한 상대 경로가 지정하는 자원에 대한 URL 객체 생성

 

※ URL 클래스 메소드

Object getContent() URL의 컨텐트를 반환
InputStream openStream() URL에 대해 연결 설정 & 이 연결로 입력 받을 수 있는 InputStream 객체 반환
URLConnection openConnection() URL 주소의 원격 객체에 접속 후 통신할 수 있는 URLConnetion 객체 리턴
String getFile() URL 주소 파일 이름 반환
getHost() URL 주소 파일 호스트 이름 반환
getPath() URL 주소의 경로 부분 반환
int getPort() URL 주소의 포트 부분 반환
getLocalPort() 소켓에 연결된 로컬 포트 번호 반환
getPort() 소켓에 연결한 서버의 포트 번호 반환

 

※ URLConnetction 클래스 

- 주어진 원격지의 주소 URL에 네트워크 접속 후 데이터를 보내거나 받을 수 있도록 하는 기능

 

※ URLConnetion 메소드(주로 쓰이는 것 위주)

1) getInputStream : 설정된 연결에서 데이터를 읽을 입력 스트림 반환

2) getOutputStream : 설정된 연결에서 데이터를 출력할 출력 스트림 반환

3) getContent() : URL 연결에서 컨텐트를 가져옴

 

[예1] - 웹사이트의 내용 읽기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
 
public class WebsiteReadEx {
 
    public static void main(String[] args) {
        try {
            URL url = new URL("https://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC:%EB%8C%80%EB%AC%B8");
           //URL 객체 생성

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
          //openStream() 메소드로 입력 스트림 입력(inputStream 사용)

            String inputLine;
            while ((inputLine = in.readLine()) != null) //한 행씩 읽기
                System.out.println(inputLine);
            in.close();
        } catch(IOException e) {
            System.out.println("URL에서 데이터를 읽는 중");
        }
    }
 
}
 
cs