2008/07 95

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

나는 왜 이런것만 할까..ㅡ,.ㅡ;; JAVA로 만들어 본 스도쿠 게임..

얼마전에 친구랑 이야기를 하다가 JAVA를 공부한다고 이야기 했다가... ㄷㄷㄷ (이게 화근이 될 줄이야 ㅡㅡ;;;) 친구 왈 : 야~ 왜 C 때려치고 자바냐? 나 : 자바가 비젼이 더 클꺼 같아서...ㄷㄷㄷ;; 친구 왈 : 너 어디까지 할 줄 알아? ^^+ 나 : 으응? 나.. 초보야.. ㄷㄷㄷ;; 친구 왈 : 씹새~ 지롤한다~ 심심한데 스도쿠 한번 만들어봐~ 나 : 뭐? 스도쿠? 지금 장난하냐? 초보라니까~ (버럭~) 친구 왈 : 내가 겨울 시즌권 쏠께~ 나 : (번쩍!번쩍! O.o) 오옷~! 진짜? 나중에 딴말 하면 죽는다~! 이리하여.. 만들게 되었다.. ㄷㄷㄷ;;;;; 제작기간 : 1주일..ㄷㄷㄷㄷ;;;

XML과 데이터베이스

오라클과 XML XML과 데이터베이스의 관련성 XML은 데이터를 표현하기 위한 방법으로, 결국 데이터를 담고 있는 그릇이라 할 수 있으며, 데이터베이스 역시 데이터를 저장, 관리할 목적을 갖고 있음. 즉 개념적으로 데이터를 다룬다는 공통점을 가지고 있다. 하지만, XML과 데이터베이스는 내부적으로 다른 구조를 취하고 있다. 그러나 개념적으로 같은 의미를 갖고 있기 때문에 서로 다른 구조를 갖고 있더라도 XML 문서의 데이터를 데이터베이스로, 데이터베이스의 데이터를 XML 문서로 변환하여 저장하는 것이 가능하다. 오라클과 XML 오라클이 맨 처음 XML 데이터를 지원하기 시작한 것은 8i 버전부터였으며, 버전이 증가하면서 점점 더 많은 기능이 추가되고 있다. 우리는 오라클 10g 버전을 기준으로 오라클에서..

TCP 프로그래밍 - 멀티스레드를 이용한 에코 서버

멀티스레드를 이용한 에코 서버 서버가 클라이언트 여러 개를 동시에 처리하지 못하는 점을 해결하는 몇가지 방법이 있다. 그 중 한 가지 방법인 스레드를 이용한 방법을 사용한다. 서버는 연결된 클라이언트의 수만큼 소켓을 가지게 되는데, 각각의 소켓은 각각 별개로 동작해야 한다. 서버는 accept()로 대기하고 있다가 클라이언트가 접속하게되면 socket 객체를 반환하게 된다. 반환 받은 소켓은 스레드의 생성자에 전달된다. 그리고나서 스레드 객체를 시작하고 다시 메인 스레드는 accept()로 대기하게 된다. 실제로 클라이언트와 통신을 하는 것은 스레드 객체의 run() 메소드 안에서 일어난다. 멀티스레드 에코 서버 프로그래밍 import java.net.*; import java.io.*; public c..

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

간단한 에코 클라이언트/서버 프로래밍 에코(Echo)는 말 그대로 메이리를 의미한다. 클라이언트가 보낸 데이터를 서버 쪽에서 받아들여, 클라이언트에게 그대로 다시 보내주는 것을 의미한다. 에코 클라이언트와 서버는 각각 다음과 같은 방식으로 동작한다. 에코서버 1. 10001번 포트에서 동작하는 ServerSocket을 생성한다. 2. ServerSocket의 accept() 메소드를 실행해서 클라이언트의 접속을 대기한다. 3. 클라이언트가 접속할 경우 accept() 메소드는 Socket 객체를 반환한다. 4. 반환 받은 Socket으로 InputStream과 OutputStream을 구한다. 5. InputStream은 BufferedReader 형식으로 변환하고 OutputStream은 PrintWr..