자바

class DownloadImage 

 

package java18_1;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;

public class DownloadImage {

	public static void main(String[] args) throws Exception{
		
		String webSite="http://localhost:1717/test/c1.png";
//http://localhost:1717/test/c1.png
//프로토콜://호스트:포트번호/컨텍스트패스/리소스주소		
		System.out.println("이미지를 다운로드 합니다.");
		//url 의 정보 분석
		URL url = new URL(webSite);
		byte[] buffer =new byte[2048];//버퍼용 바이트 배열	
		InputStream is =null;
		OutputStream os =null;
/*try(리소스 선언부){
	
}
	*/	
		try{
			is =url.openStream();
			os=new FileOutputStream("d:\\test.png");
			
			int length =0;
			while( (length=is.read(buffer))!=-1){
				os.write(buffer, 0, length);//버퍼에서 사이즈 만큼 읽어서 기록
				System.out.println(length +" 바이트 읽음");
			}
			os.flush();
			System.out.println("이미지를 다운로드를 완료 하였습니다.");
		}catch (Exception e) {
			
			e.printStackTrace();
		}finally{
			if(is!=null) is.close();
			if(os!=null) os.close();
		}	
	}
	
	
}

 

 

class UrlEncodeExam

package java18_1;

import java.net.URLDecoder;
import java.net.URLEncoder;

//encode(암호화)
//decode(복호화)

//url 에는 한글, 특수문자 사용 안됨
//url encode
//url encode
//URLEncoder.encode(인코딩할 문자열, 캐릭터셋)
//URLDecoder.decode(디코딩할 문자열, 캐릭터셋)
//한국어 : ms949(euc-kr), utf-8(권장)
public class UrlEncodeExam {

	public static void main(String[] args) throws Exception{
		String message ="안녕하세요";
		System.out.println(URLEncoder.encode(message, "utf-8"));
		System.out.println(URLDecoder.decode("%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94", "utf-8"));
	}
	
	
}




 

class SocketExam

package java18_1;

import java.net.Socket;

//소켓 : 서버와 클라이언트간의 논리적인 연결(접점)
//ServerSocket - 서버용
//Socket - 클라이언트용
// ip 주소와 포트(0~65535) 번호
// 1port =>1 service
// 21 ftp service
// 3389 원격접속
public class SocketExam {
	public static void main(String[] args) {
		Socket socket=null;
		for(int i=100; i<=10000; i+=10){
			try{
				socket=new Socket("localhost", i);
				System.out.println(i+"번 사용가능합니다.");
				socket.close();
			}catch(Exception e){
				System.out.println(i+"번 사용중입니다.");
				
			}
		}
	}
}



 

 

class DateServer

package java18_1;

import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public class DateServer {
	public static void main(String[] args) throws Exception{
		//서버에서 9100 포트를 개방 (0 ~65535)
		ServerSocket ss =new ServerSocket(9100);
		System.out.println("서비스가 시작되었습니다.");
		while(true){
			//클라이언트에서 접속할 때까지 대기 상태
			//클라이언트에서 접속하면 접속을 허가하고 논리적인 소켓이 연결됨
			Socket socket=ss.accept();
			//new PrinWriter( 출력 스트림, 자동 플러쉬)
			PrintWriter out =new PrintWriter(socket.getOutputStream(), true);
			out.println(new Date().toString());
			socket.close();//소켓 닫기
		}
	}
	
	
}


 

 

class DateClient

package java18_1;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;

public class DateClient {

	public static void main(String[] args) throws Exception{
		//new Socket(서버IP, 포트번호) 서버에 접속
		//서버에서 accept() 하면 통신이 가능한 상태가 됨
		Socket s =new Socket("localhost", 9100);
		BufferedReader input=
				new BufferedReader(new InputStreamReader(s.getInputStream()));
		//서버에서 보낸 메시지를 읽음
		String res=input.readLine();
		System.out.println(res);
		System.exit(0); //프로그램 종료
		
	}
	
	
	
}

 

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

마음에 하고 싶은대로 하는 사람에게는 애욕(愛慾)과 지엽(枝葉)은 날이 갈수록 무성해진다. 숲 속의 과실을 탐하는 원숭이처럼 정념(情念)은 맹렬히 타오른다. -법구경

댓글 ( 4)

댓글 남기기

작성