목차
실습과제
문제분석
알고리즘
소스코드
결과분석
소감
문제분석
알고리즘
소스코드
결과분석
소감
본문내용
ine()) != null) {
//클라이언트가 문장을 입력하였을시 서버에서 출력
message="["+name+"]"+line;
System.out.println("Server Receive : "+ message);
tellEveryone(message);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
public void tellEveryone(String message) {//클라이언트로 부터 받아온문장을 모든사용자에게 보내는 메소드
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()) {//문장이 있을시
try {
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
writer.flush();
} catch(Exception e) {
e.printStackTrace();
}
}
}
public void go() {
clientOutputStreams = new ArrayList();//
try {
ServerSocket serverSock = new ServerSocket(4242);
System.out.println("채팅 서버를 가동합니다.");
while(true) {
Socket clientSocket = serverSock.accept();
//클라이언트의 소켓이 연결할때까지 계속 기다린다. 접속되면 serve포트번호와는 다른 포트의 소캣을 리턴한다.
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
}
} catch(IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ProblemServer server = new ProblemServer();
server.go();
}
}
결과분석
하나의 서버를 실행시킨뒤 두 개의 클라이언트를 접속 시켰다. 주소를 입력받아 접속하였으며 이름을 입력받아 누가 전송한 메시지인지를 구별가능하도록 기능을 추가하였다.
또한 /quit라는 명령을 통하여 클라이언트를 종료 할수 있도록 하는 기능도 넣었다.
실행결과 이상없이 프로그램이 잘 수행되었다.
소감
뒷부분의 스레드와 스윙 그리고 이번에 실습한 소캣을 이용한 프로그래밍이 아직 이해가 안되는 부분이 많이 있는거 같고 아직 많이 모르는게 많아 공부를 많이 해야겠다고 생각하였다. 학교진도가 너무 빠르게 지나가는것 같이 느껴졌다. 또 과제를 완성하긴 했지만 시험 기간이고 자바 프로젝트도 있기 때문에 과제하는데 약간 벅찬 감이 있는 것같다.
하지만 얼마남지 않은 기간 열심히 해서 유종의 미를 거둘수 있도록 하겠다.
//클라이언트가 문장을 입력하였을시 서버에서 출력
message="["+name+"]"+line;
System.out.println("Server Receive : "+ message);
tellEveryone(message);
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
public void tellEveryone(String message) {//클라이언트로 부터 받아온문장을 모든사용자에게 보내는 메소드
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()) {//문장이 있을시
try {
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
writer.flush();
} catch(Exception e) {
e.printStackTrace();
}
}
}
public void go() {
clientOutputStreams = new ArrayList();//
try {
ServerSocket serverSock = new ServerSocket(4242);
System.out.println("채팅 서버를 가동합니다.");
while(true) {
Socket clientSocket = serverSock.accept();
//클라이언트의 소켓이 연결할때까지 계속 기다린다. 접속되면 serve포트번호와는 다른 포트의 소캣을 리턴한다.
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
}
} catch(IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
ProblemServer server = new ProblemServer();
server.go();
}
}
결과분석
하나의 서버를 실행시킨뒤 두 개의 클라이언트를 접속 시켰다. 주소를 입력받아 접속하였으며 이름을 입력받아 누가 전송한 메시지인지를 구별가능하도록 기능을 추가하였다.
또한 /quit라는 명령을 통하여 클라이언트를 종료 할수 있도록 하는 기능도 넣었다.
실행결과 이상없이 프로그램이 잘 수행되었다.
소감
뒷부분의 스레드와 스윙 그리고 이번에 실습한 소캣을 이용한 프로그래밍이 아직 이해가 안되는 부분이 많이 있는거 같고 아직 많이 모르는게 많아 공부를 많이 해야겠다고 생각하였다. 학교진도가 너무 빠르게 지나가는것 같이 느껴졌다. 또 과제를 완성하긴 했지만 시험 기간이고 자바 프로젝트도 있기 때문에 과제하는데 약간 벅찬 감이 있는 것같다.
하지만 얼마남지 않은 기간 열심히 해서 유종의 미를 거둘수 있도록 하겠다.
추천자료
[정신장애인직업재활][직업재활프로그램][직업재활서비스][직업재활정책]정신장애인직업재활,...
[또래상담][상담자역할][집단상담프로그램][또래상담의 기대효과]또래상담의 개념, 또래상담...
내가 선호하는 보육프로그램의 유형은 - 몬테소리 프로그램
발도르프 프로그램의 환경구성과 교사의 역할에 대해 쓰고 자신이 생각하는 발도르프 프로그...
[사회복지 프로그램 개발과 평가] 국내에서 실시하고 있는 가족보존과 가정기반확립을 위한 ...
청소년 교육 프로그램의 대상 - 청소년 교육프로그램의 필요성
자원개발을 위한 프로그램(PROGRAM) 기획 (사회복지 패러다임의 전환·개발·기획·평가, 사회복...
[공익][공익프로그램][공익정책][공익위원안]공익과 공익프로그램, 공익과 공익정책, 공익과 ...
(방송대) 영유아 프로그램 개발과 평가 B형 몬테소리 프로그램의 이론적 기초, 교육목표 및 ...
영유아 프로그램의 최근 동향을 파악하여 서술하고 프로그램을 분석해 보시오
생태유아교육 프로그램의 개념 정리 및 생태유아교육의 필요성에 대한 학습자의 의견을 서술...
다양한 영유아 보육프로그램 중에서 현재 교육과정에 더 추가 반영했으면 하는 프로그램이 있...
가족복지론)가족생활교육프로그램의 개발에 대한 접근 모형가족생활교육의 프로그램을 계획하...
장애아동을 위한 통합교육과 개별화교육 프로그램의 특징을 정리하고 각 프로그램의 사례를 ...