네트워크 프로그래밍
java.net.InetAddress 클래스
- InetAddress 클래스는 인터넷상의 IP 주소를 객체 모델링한 클래스로 IP주소와 관련된 여러 정보를 제공하는 클래스이다.
Ex001_InetAddress >>
package netEx;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.InetAddress;
public class Ex001_InetAddress {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String host = null;
try {
System.out.print("호스트명[www.naver.com 또는 컴이름] ? ");
host = br.readLine();
InetAddress ia = InetAddress.getByName(host);
String str = ia.getHostName();
String ip = ia.getHostAddress();
System.out.println("호스트명 : "+str);
System.out.println("아이디 : "+ip);
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 예제를 통해 InetAddress 클래스로 해당 주소의 호스트명과 ip를 가져올 수 있었다.
URL(Uniform Resource Locator) 이란?
- URL은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다.
- URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크 상의 자원을 모두 나타낼 수 있다.
- URL 구성
프로토콜://호스트:[포트번호]/[파일]#[세션]
java.net.URL 클래스
- URL 클래스는 웹(World Wide Web) 상에 존재하는 자원(resource)에 접근하기 위해, 자원의 유일한 주소를 나타내기 위한 기능을 제공해 주는 클래스이다.
- 자원이란 파일 또는 디렉토리와 같은 간단한 것에서부터 데이터베이스 또는 서치엔진에 대한 쿼리(query)와 같은 복잡한 형태의 객체일 수도 있다.
java.net.URLConnection 클래스
- URLConnection 클래스는 추상 클래스로 애플리케이션과 URL 간의 통신 링크를 위한 모든 클래스들에 대한 상위 클래스이다.
- URLConnection 객체는 URL을 이용하여 참조된 자원에 대해 읽고 쓰는 작업을 할 수 있도록 해준다.
URLEncoder 와 URLDecoder 클래스
- application/x-www-form-urlencoded 는 HTML form 데이터 기본 전송 방식이다.
영문자 숫자('a'~'z', 'A'~'Z', '0'~'9')는 그대로 표현된다.
특수 문자의 '.'. '-', '*', '_' 는 그대로 표현된다.
공백 문자(' ')는 '+' 기호로 변환된다.
기타 문자는 %xy와 같이 세 개의 문자로 변환되는데, 이 때 xy는 문자의 하위 8비트에 대한 16진수 두자리를 나타낸다.
- MIME(Multipurpose Internet Mail Extensions) type : 메세지 컨텐트 형식을 정의하기 위한 인터넷 표준을 의미한다.
java.net.URLEncoder 클래스
- HTML 형식을 encode하기 위한 유틸리티 클래스로 문자열을 application/x-www-form-urlencoded MIME 형식으로 변환하기 위한 static 메소드를 제공한다.
java.net.URLDecoder 클래스
- HTML 형식을 디코드하기 위한 유틸리티 클래스로, applicaion/x-www-form-urlencoded MIME 형식을 문자열로 디코드 하기위한 static 메소드를 제공한다.
Ex002_URL >>
package netEx;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
public class Ex002_URL {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String webUrl, s;
BufferedReader nbr = null;
try {
System.out.print("웹주소[https://www.naver.com] ? ");
webUrl = br.readLine();
// URL : 웹(World Wide Web)상의 리소스에 대한 포인터를 나타냄
URL url = new URL(webUrl);
InputStream is = url.openStream();
nbr = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while( (s = nbr.readLine()) !=null) {
System.out.println(s);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (nbr != null) {
try {
nbr.close();
} catch (Exception e2) {
}
}
}
}
}
아직 뭔지 모르는 소스들을 가져왔다.
Ex003_URLEncoder >>
package netEx;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class Ex003_URLEncoder {
public static void main(String[] args) {
String s1, s2;
s1 = "자바 java";
try {
// 인터넷에서 데이터를 전송할 수 있는 상태로 변환(application/x-www-form-urlencoded)
s2 = URLEncoder.encode(s1, "UTF-8");
System.out.println(s2); // %EC%9E%90%EB%B0%94+java
// 주소형식으로 변환된 문자열을 다시 원래대로 변환
s1 = URLDecoder.decode(s2, "UTF-8");
System.out.println(s1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
URLEncoder 와 URLDecoder 클래스로 문자열을 인터넷에서 주고받을 수 있는 형태로 변환해보고 다시 변환된 것을 우리가 볼 수 있도록 바꾸어보았다.
'쌍용강북교육센터 > 9월' 카테고리의 다른 글
0901~0910_JDBC : Semi Project 빵켓컬리 (1) | 2021.09.13 |
---|---|
0907_Java : 채팅프로그램 만들기 (1) | 2021.09.08 |
0906_Java : Thread Synchronization 동기화 (0) | 2021.09.07 |
0903_Java : Thread Priority 스레드 우선순위 (0) | 2021.09.07 |
0903_Java : Daemon Thread (0) | 2021.09.07 |