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); //프로그램 종료
}
}
댓글 ( 4)
댓글 남기기