1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
package chapter19; import java.net.InetAddress; import java.net.UnknownHostException; public class InetAddressEx { public static void main(String[] args) { try { // getByName메서드로 InetAddress 객체 생성 InetAddress ip = InetAddress.getByName( "www.google.co.kr" ); System.out.println( "hostname:" + ip.getHostName()); System.out.println( "ip :" + ip.getHostAddress()); // getAllByName메서드로 InetAddress 객체배열 생성 InetAddress[] ips = InetAddress.getAllByName( "www.google.co.kr" ); for (InetAddress i : ips) { System.out.println( "ip 주소 :" + i); } // ip 주소값을 byte[] 배열로 리턴 byte [] ipAddr = ip.getAddress(); // byte 자료형의 표현 범위 : 128 ~ 127 // 127 이상의 값은 음수로 표현됨 for ( byte b : ipAddr) { System.out.print(((b < 0 ) ? b + 256 : b) + "." ); } System.out.println(); // getLocalHost 메서드로 InetAddress 객체 생성 호출 InetAddress local = InetAddress.getLocalHost(); System.out.println( "내컴퓨터 IP:" + local); // getByAddress 메서드로 InetAddress 객체 생성 호출 InetAddress ip2 = InetAddress.getByAddress(ips[ 0 ].getAddress()); System.out.println(ips[ 0 ].getHostAddress() + " 주소 :" + ip2); } catch (UnknownHostException e) { System.out.println(e.getMessage()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
package chapter19; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.net.MalformedURLException; import java.net.URL; public class URLEx { public static void main(String[] args) { try { URL url = null ; System.out.println( "authority : " + url.getAuthority()); System.out.println( "content : " + url.getContent()); System.out.println( "protocol : " + url.getProtocol()); System.out .println( "host : " + url.getHost()); System.out.println( "port : " + url.getPort()); System.out.println( "path : " + url.getPath()); System.out.println( "file : " + url.getFile()); System.out.println( "query : " + url.getQuery()); // URL 을 통해서 정보 받기 int data = 0 ; try { Reader is = new InputStreamReader(url.openStream()); while ((data = is.read()) != - 1 ) { System.out.print(( char ) data); } System.out.println(); } catch (IOException e) { e.printStackTrace(); } } catch (Exception e) { System.out.println(e.getMessage()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
package chapter19; import java.net.URL; import java.net.URLConnection; public class URLConnectionEx { public static void main(String[] args) { URL url = null ; String address = try { url = new URL(address); URLConnection conn = url.openConnection(); System.out.println( "conn.toString():" + conn); System.out.println( "getAllowUserInteraction():" + conn.getAllowUserInteraction()); System.out.println( "getConnectTimeout():" + conn.getConnectTimeout()); System.out.println( "getContent():" + conn.getContent()); System.out.println( "getContentEncoding():" + conn.getContentEncoding()); System.out.println( "getContentLengt h():" + conn.getContentLength()); System.out.println( "getContentType():" + conn.getContentType()); System.out.println( "getDate():" + conn.getDate()); System.out.println( "getDefaultAllowUserInteraction():" + conn.getDefaultAllowUserInteraction()); System.out.println( "getDefaultUseCaches():" + conn.getDefaultUseCaches()); System.out.println( "getDoInput():" + conn.getDoInput()); System.out.println( "getDoOutput():" + conn.getDoOutput()); System.out.println( "getExpiration():" + conn.getExpiration()); System.out.println( "getHeaderFields():" + conn.getHeaderFields()); System.out.println( "getIfModifiedSince():" + conn.getIfModifiedSince()); System.out.println( "getLastModified():" + conn.getLastModified()); System.out.println( "getReadTimeout():" + conn.getReadTimeout()); System.out.println( "getURL():" + conn.getURL()); System.out.println( "getUseCaches():" + conn.getUseCaches()); } catch (Exception e) { System.out.println(e.getMessage()); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package chapter19; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; public class URLConnectionEx2 { public static void main(String[] args) { URL url = null ; String address = BufferedReader br = null ; String readline = "" ; try { url = new URL(address); br = new BufferedReader( new InputStreamReader(url.openStream())); while ((readline = br.readLine()) != null ) { System.out.println(readline); } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { br.close(); } catch (Exception e) {} } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
package chapter19; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class ServerEx { public static void main(String[] args) { // 소켓 생성 ServerSocket server = null ; try { server = new ServerSocket( 9999 ); // 무한 반복 (클라이언트 접속 대기) while ( true ) { System.out.println( "클라이언트 접속 대기" ); Socket client = server.accept(); System.out.println( "스레드 생성" ); HttpThread ht = new HttpThread(client); ht.start(); } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { server.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } } } class HttpThread extends Thread { private Socket client; BufferedReader br; PrintWriter pw; HttpThread(Socket client) { this .client = client; try { br = new BufferedReader ( new InputStreamReader(client.getInputStream())); pw = new PrintWriter(client.getOutputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } } public void run() { BufferedReader fbr = null ; DataOutputStream outToClient = null ; try { String line = br.readLine(); //line : GET / HTTP/1.1 System.out.println( "Http Header :" +line); int start = line.indexOf( "/" ) + 1 ; int end = line.lastIndexOf( "HTTP" ) - 1 ; String fileName=line.substring(start,end); if (fileName.equals( "" )) { fileName= "index.html" ; } System.out.println( "사용자 요청 파일 :" +fileName); fbr = new BufferedReader ( new FileReader(fileName)); String fileLine = null ; pw.println( "HTTP/1.0 200 Document Follows \r\n" ); while ((fileLine = fbr.readLine())!= null ){ pw.println(fileLine); pw.flush(); } } catch (IOException e) { System.out.println(e.getMessage()); } finally { try { if (br != null ) br.close(); if (pw != null ) pw.close(); if (client != null ) client.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
package chapter19; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class ServerEx { public static void main(String[] args) { // 소켓 생성 ServerSocket server = null ; try { server = new ServerSocket( 9999 ); // 무한 반복 (클라이언트 접속 대기) while ( true ) { System.out.println( "클라이언트 접속 대기" ); Socket client = server.accept(); System.out.println( "스레드 생성" ); HttpThread ht = new HttpThread(client); ht.start(); } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { server.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } } } class HttpThread extends Thread { private Socket client; BufferedReader br; PrintWriter pw; HttpThread(Socket client) { this .client = client; try { br = new BufferedReader ( new InputStreamReader(client.getInputStream())); pw = new PrintWriter(client.getOutputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } } public void run() { BufferedReader fbr = null ; DataOutputStream outToClient = null ; try { String line = br.readLine(); //line : GET / HTTP/1.1 System.out.println( "Http Header :" +line); int start = line.indexOf( "/" ) + 1 ; int end = line.lastIndexOf( "HTTP" ) - 1 ; String fileName=line.substring(start,end); if (fileName.equals( "" )) { fileName= "index.html" ; } System.out.println( "사용자 요청 파일 :" +fileName); fbr = new BufferedReader ( new FileReader(fileName)); String fileLine = null ; pw.println( "HTTP/1.0 200 Document Follows \r\n" ); while ((fileLine = fbr.readLine())!= null ){ pw.println(fileLine); pw.flush(); } } catch (IOException e) { System.out.println(e.getMessage()); } finally { try { if (br != null ) br.close(); if (pw != null ) pw.close(); if (client != null ) client.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
package chapter19; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class ServerEx { public static void main(String[] args) { // 소켓 생성 ServerSocket server = null ; try { server = new ServerSocket( 9999 ); // 무한 반복 (클라이언트 접속 대기) while ( true ) { System.out.println( "클라이언트 접속 대기" ); Socket client = server.accept(); System.out.println( "스레드 생성" ); HttpThread ht = new HttpThread(client); ht.start(); } } catch (Exception e) { System.out.println(e.getMessage()); } finally { try { server.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } } } class HttpThread extends Thread { private Socket client; BufferedReader br; PrintWriter pw; HttpThread(Socket client) { this .client = client; try { br = new BufferedReader ( new InputStreamReader(client.getInputStream())); pw = new PrintWriter(client.getOutputStream()); } catch (IOException e) { System.out.println(e.getMessage()); } } public void run() { BufferedReader fbr = null ; DataOutputStream outToClient = null ; try { String line = br.readLine(); //line : GET / HTTP/1.1 System.out.println( "Http Header :" +line); int start = line.indexOf( "/" ) + 1 ; int end = line.lastIndexOf( "HTTP" ) - 1 ; String fileName=line.substring(start,end); if (fileName.equals( "" )) { fileName= "index.html" ; } System.out.println( "사용자 요청 파일 :" +fileName); fbr = new BufferedReader ( new FileReader(fileName)); String fileLine = null ; pw.println( "HTTP/1.0 200 Document Follows \r\n" ); while ((fileLine = fbr.readLine())!= null ){ pw.println(fileLine); pw.flush(); } } catch (IOException e) { System.out.println(e.getMessage()); } finally { try { if (br != null ) br.close(); if (pw != null ) pw.close(); if (client != null ) client.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } } } |