- 네트워크 연결 및 통신을 위해 IP 주소와 호스트 이름을 나타내는데 사용되는 클래스
- 네트워크 작업은 예외가 발생할 수 있기 때문에 적절한 예외 처리 필요
🟢 주요 메소드
getLocalHost()
: 현재 시스템의 로컬 호스트에 해당하는 InetAddress 객체 반환, 현재 컴퓨터의 IP 주소와 호스트 이름을 얻을 수 있음getByName(String host)
: 주어진 호스트 이름에 해당하는 InetAddress 객체 반환, 호스트는 호스트 이름이나 IP 주소를 나타냄getHostName()
: InetAddress 객체에 연결된 호스트 이름 반환getHostAddress()
: InetAddress 객체에 연결된 IP 주소 반환toString()
: InetAddress 객체의 문자열 표현 반환, 문자열에는 IP 주소와 호스트 이름 포함getAllByName(String host)
: 호스트 이름에 대한 모든 IP 주소를 배열로 반환InetAddress naver = InetAddress.getByName("www.naver.com");
System.out.println("[[ naver ]]");
System.out.println("HostName: " + naver.getHostName());
System.out.println("HostAddress: " + naver.getHostAddress());
System.out.println("toString: " + naver.toString());
System.out.println();
InetAddress myPC = InetAddress.getLocalHost();
System.out.println("[[ my PC ]]");
System.out.println("HostName: " + myPC.getHostName());
System.out.println("HostAddress: " + myPC.getHostAddress());
System.out.println("toString: " + myPC.toString());
System.out.println();
System.out.println(" [[ 모든 IP 주소 배열로 받기 ]] ");
InetAddress[] ipArr = InetAddress.getAllByName("www.naver.com");
for(InetAddress data : ipArr) {
System.out.println(data);
}
- Uniform Resource Locator(URL)을 나타내기 위한 클래스
- URL: 인터넷 상에서 자원의 위치를 가리키는 문자열
- 인터넷에 존재하는 서버들의 자원에 접근할 수 있는 주소를 다룸
🟠 객체 생성
URL url = new URL("https://www.example.com:8080/path/to/resource?param=value");
🟢 주요 메소드
getProtocol()
: URL의 프로토콜 반환getHost()
: URL의 호스트 반환getPort()
: URL의 포트 번호 반환getFile()
: URL의 파일 반환getPath()
: URL의 경로 반환getQuery()
: URL의 쿼리 문자열 반환toExternalForm()
: URL 객체를 외부 형태의 문자열로 변환하여 반환 URL url = new URL("https", "ddit.or.kr", 80, "/test/index.php?name=hong&age=30#test");
System.out.println("프로토콜: " + url.getProtocol());
System.out.println("호스트: " + url.getHost());
System.out.println("포트: " + url.getPort());
System.out.println("파일: " + url.getFile());
System.out.println("경로: " + url.getPath());
System.out.println("쿼리: " + url.getQuery());
System.out.println("외부 형태 문자열: " + url.toExternalForm());
- URL을 통해 원격 서버와 통신하고 데이터를 송수신할 수 있게 하는 클래스
- 웹 페이지의 내용을 읽거나 파일을 다운로드하거나 업로드 할 때 사용
🟢 주요 메소드
openConnection()
: URL 객체에서 URLConnection 객체를 얻어옴, URL 객체가 생성되어 있어야 함getHeaderFields()
: 연결된 리소스의 모든 헤더 필드를 맵 형태로 반환openStream()
: 연결된 리소스로부터 입력 스트림을 얻어옴URL url = new URL("https://www.ddit.or.kr/index.php");
URLConnection urlCon = url.openConnection();
// Header 정보 알아보기
Map<String, List<String>> headerMap = urlCon.getHeaderFields();
for(String key : headerMap.keySet()) {
System.out.println(key + " : " + headerMap.get(key));
}
System.out.println("-------------------------------------------------");
- URLConnection 객체 이용
InputStream in = urlCon.getInputStream();
InputStreamReader isr = new InputStreamReader(in, "UTF-8");
BufferedReader br = new BufferedReader(isr);
while(true) {
String str = br.readLine();
if(str == null) break;
System.out.println(str);
}
br.close();
- URL 객체의 openStream() 이용
InputStream isr = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(isr, "UTF-8"));
while(true) {
String str = br.readLine();
if(str == null) break;
System.out.println(str);
}
br.close();