네트워크 프로그래밍

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 클래스로 문자열을 인터넷에서 주고받을 수 있는 형태로 변환해보고 다시 변환된 것을 우리가 볼 수 있도록 바꾸어보았다.

 

+ Recent posts