분류 전체보기 101

URL - 웹사이트 읽어오기(WebSpider)

URL 클래스를 이용해서 웹사이트 읽어오기 텔넷을 이용한 웹사이트 읽어오기 1. 윈도우 명령창을 실행한다. 2. 그림과 같이 telnet daum.net 80이라고 입력한 후 엔터 키를 입력한다. 3. GET / 라고 입력한 후 엔터키를 입력한다 이 때 키보드로 입력한 갑싱 화면에는 출력되지 않을 수도 있다. (보이지 않더라도 무조건 입력 후 엔터 키를 입력한다.) 4. 다음과 같이 daum.net의 HTML 태그가 출력되는 것을 확인 할 수 있다. 이는 웹 서버가 동작하는 80번 포트에 telnet 프로그램으로 접속한 후 '/' 디렉톨리의 내용을 GET 방식으로 보여 달라고 HTTp 프로토콜에 해당하는 문자열을 보낸 것이다. 그 결과 서버는 접속한 클라이언트가 텔넷 프로그램인 것은 모르고 웹 브라우저인..

URL - URL 주소 분석

URL URL은 Uniform Resource Location의 머리 글자로 인터넷에서 접근 가능한 자원의 주소를 일관되게 표현할 수 있는 형식을 말한다. 여기서 말하는 자원의 형태는 인터넷 응용 프로토콜에 따라 다를 수 있는데, 월드와이드웹 프로토콜인 HTTP를 사용하는 경우의 자원에는 HTML, 페이지, 이미지 파일, CGI나 자바 애플릿과 같은 프로그램, 기타 HTTP가 지원하는 다른 파일 등이 있다. URL은 자원에 접근하는데 필요한 프로토콜명, 인터넷에서 특정한 컴퓨터를 식별하기 위한 도메인명, 그리고 컴퓨터 파일의 위치를 계층적으로 나타낸 경로명 등으로 구성된다. URL 클래스 URL 클래스의 사용목적 URL 클래스는 URL 주소가 알맞은 형식의 URL 주소인지 검사하거나, URL 주소로부터 ..

UDP 프로그래밍 - 타임 서버와 클라이언트 작성

UDP를 이용한 타임 서버와 클라이언트 작성 타임 서버는 에코 서버와 동작하는 방법이 거의 비슷하다. 다른 점이 있다면 에코 서버의 경우에는 클라이언트가 전송할 데이터를 그대로 반송하는 반면, 타임 서버는 클라이언트가 시간에 대해서 요청을 보내면 서버의 시간을 구해서 시간에 대한 요청을 보낸 클라이언트에게 현재 시간에 대한 정보를 전송하게 된다. 타임 서버와 클라이언트의 경우에는 TCP보다는 UDP를 이용하는 것이 알맞다. 그 이유는 전송하는 데이터가 간단하고 빠르게 반응하게 하기 위해서인데, 강조한대로 TCP의 경우는 연결지향성이기 때문에 UDP보다 초기 응답시간이 느리기 때문이다. 컴퓨터 여러 대를 운용할 경우, 각각의 컴퓨터 시간이 항상 같게 설정하려면 여간 번거로운 일이 아니다. 이런 것을 해결하..

UDP 프로그래밍 - 에코 클라이언트 / 서버 프로그래밍

UDP를 이용한 에코 클라이언트 / 서버 프로그래밍 에코 서버 프로그래밍 import java.net.*; public class UDPEchoServer { public static void main(String[] args) { if(args.length != 1){ System.out.println("사용법 : java UDPEchoServer port"); System.exit(1); } int port = 0; try{ port = Integer.parseInt(args[0]); }catch(Exception ex){ System.out.println("port 번호는 양의 정수로 입력하여 주세요."); System.exit(1); } DatagramSocket dsock = null; try{..

UPD 프로그래밍

UDP를 이용한 프로그래밍 방법 UDP(User Datagram Protocol)는 데이터그램 통신 프로토콜이라고도 한다. UDP는 TCP와는 다르게 비연결성(connectionless) 프로토콜이다. 즉, TCP 처럼 미리 연결을 맺고 통신하는 방식이 아니다. 데이터그램은 보통 패킷(packet)이란 용어로 교체되어 사용된다. 패킷이란 인터넷 내에서 운반되어야 할 메시지 단위이다. UDP는 패킷을 보낼 때마다 수신측의 주소와 로컬 파일 설명자를 함께 전송해야 한다. 이런 이유로 UDP는 전송해야 할 데이터 외에 추가적인 데이터가 함께 전송되어야한다. 또한 UDP는 TCP와는 다르게 비연결성이기 때문에 패킷이 수신 측에 전송한 순서대로 도달하지 않는 문제가 발생할 수도 있다. (그러나 네트워크가 근거리일..

TCP 프로그래밍 - 객체 직렬화를 이용한 네트워크 프로그래밍(계산기)

객체 직렬화를 이용한 네트워크 프로그래밍 객체 직렬화란 말 그대로 객체를 일렬로 늘어선 바이트의 흐름으로 만드는 기술을 말한다. 이 때 사용하는 IO객체가 ObjectOutputStream과 ObjectInputStream이다. 네트워크 프로그래밍에서도 ObjectOuputStream과 ObjectInputStream을 이용해서 소켓을 통해서 객체를 주고받을 수 있다. 객체 직렬화를 이용해서 각ㄴ단한 계산을 행하는 클라이언트 / 서버 프로그램인데, 클라이언트는 접속에 성공한 후 SendData에 숫자 두개와 연산자를 저장해서 서버에 전송한다. 서버는 전달받은 SendData 객체로부터 숫자 두 개와 연산자를 읽어와서 계산한 후 클라이언트 에게 결과 값을 문자열로 전송하는 프로그램이다. 직렬화 가능 객체 ..

TCP 프로그래밍 - 윈도우용 채팅 클라이언트(AWT를 이용)

윈도우용 채팅 클라이언트 채팅 서버를 사용하는 윈도우용 클라이언트를 작성한다. 윈도우 채팅 클라이언트 작성 개요 윈도우용 클라이언트의 작성 방법을 배우려면 먼저 윈도우용 클라이언트의 동작 원리에 대해서 이해해야 한다. 명령 창에서 실행되는 채팅 클라이언트의 경우, 문장을 전송하기 위해서 한 줄의 끝을 의미하는 엔터 키를 입력했다 하지만 윈도우 용 클라이언트는 텍스트 입력 창에서 엔터키를 눌렀다는 이벤트를 처리하는 부분에서 문장을 전송해야 한다. 또한 명령 창에서 실행되는 채팅 클라이언트 서버로부터 전송 받을 문자열을 단순히 화면에 출력했지만, 윈도우용 클라이언트는 서버로 전송 받은 문자열을 TextArea 등에 보여지게 해야한다. import java.awt.*; import java.awt.event...

TCP 프로그래밍 - 간단한 채팅 클라이언트 / 서버 프로그래밍

간단한 채팅 클라이언트 / 서버 프로그래밍 채팅 프로그래밍을 하기 전에 클라이언트의 동작 방법부터 정의하자. 채팅 클라이언트는 다음과 같은 방식으로 동작한다. 1. 채팅 클라이언트를 실행할 때 사용자의 아이디와 접속할 서버의 IP 주소를 전달한다. 2. 다른 클라이언트가 접속하면, "XXX님이 접속했습니다."란 메세지를 출력한다. 3. 다른사람의 대화 내용이 클라이언트에서 키보드로 입력하는 중에도 전달되어 화면에 출력된다. 4. 클라이언트에서 키보드로 문장을 입력한 후 엔터 키를 입력하면, 접속된 모든 클라이언트에 입력된 문자열이 전송된다. 5. 클라이언트를 종료하면 "XXX님이 접속 종료했습니다."란 메시지를 출력한다. 위의 클라이언트의 동작에 대한 정의를 보면 클라이언트는 다음과 같은 내용을 서버에 ..

TCP 프로그래밍 - 간단한 웹 서버

브라우저의 요청 정보 출력 브라우저가 웹 서버에게 요청정보를 보낸다는 것은 일단 웹 서버에 연결된다는 것을 의미한다. 따라서 성공적으로 연결되면 브라우저는 웹 서버에게 요청정보를 전달하게 된다. 이와 같은 원리를 이용해서 브라우저가 요청한 정보를 단순히 화면에 출력하는 프로그램이다. 즉, 응답은 보내지 않고 요청정보만 읽어 들여 출력하는 프로그램이다. import java.net.*; import java.io.*; public class SimpleWebServerBasic { public static void main(String[] args) { Socket sock = null; BufferedReader br = null; try{ ServerSocket ss = new ServerSocket(..

JSP - 게시판

첨부파일 기능 안내 글 출력 - list.jsp, view.jsp 글 입력 - write.jsp, writeproc.jsp 글 수정 - modify.jsp, modifypro.jsp 글 삭제 - delete.jsp, deleteproc.jsp 디자인 - style.css 쿼리 - guest.sql 제작 환경 및 툴 톰캣 5.5, jdk 5.0, 오라클 9i 이클립스 3.3, 드림위버 CS3, 토드 9.x 제작 기간 3일(방과후 3시간 + 마지막날 쉬는시간 틈틈이) 개선 해야 할 부분 페이지 넘기는 부분(미구현) 답글 및 댓글(미구현) MVC패턴(...) DB에다 값을 넣고 불러오는 건 알겠다. 왜 빈즈(VO, DAO 등)이 필요한지 절실히 느끼도록 페이지 마다 변수를 선언했다. 나중에는 복사 붙여넣기 해..

세미프로젝트 2008.07.18