2008/07/19 14

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(..