코딩왕랄프👊🏻

[오픈소스] 2. Chat 소스 분석 1 본문

카테고리 없음

[오픈소스] 2. Chat 소스 분석 1

hyerm_2 2019. 5. 16. 14:30
반응형
SMALL

1. Chat 프로그램에서 사용할 수 있는 명령어

 

 - /to : 귓속말

- /quit : 프로그램을 종료한다.

 

 

2. Chat 소스에 사용된 class

 

-ServerSocket (https://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html) : 자바에서 서버 프로그램을 개발할 때 쓰이는 클래스이다.

-HashMap (https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html) : 키와 데이터 값의 한쌍으로 묶어서 관리하며 키의 중복을 허용하지 않는다.

-Socket (https://docs.oracle.com/javase/7/docs/api/https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html) :  client에서 서버로 접속하거나 Server에서 accpet하는데 필요한 클래스이다. 

-BufferedReader (https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html) : 문자 입력 스트림으로부터 문자들을 읽어 들이는데, 버퍼링을 함으로써 문자, 문자배열, 문자열 라인 등을 보다 효율적으로 읽어 들일 수 있게 해준다.

-PrintWriter (https://docs.oracle.com/javase/7/docs/api/java/io/PrintWriter.html) : Print(), Println() 메소드를 사용해 출력을 편리하게 사용할 수 있도록 만든 클래스이다.

 

 

2. Chat 소스에 사용된 function

 

-broadcast : 유저에게 메시지를 보내는 역할을 한다.

 

-synchronized : 자신이 포함된 객체에 lock을 건다. 따라서 동기화 문제를 해결한다. 동기화는 객체에 대한 동기화로 이루어지는데, 같은 객체에 대한 모든 동기화 블록은 한 시점에 오직 한 쓰레드만이 블록 안으로 접근하도록  한다. 블록에 접근을 시도하는 다른 쓰레드들은 블록 안의 쓰레드가 실행을 마치고 블록을 벗어날 때까지 블록상태가 된다.

 

-run : 스트링을 읽어, quit이면 종료하고, to이면 sendmsg함수를 실행하고, 그렇지않으면 broadcast함수를 실행하는 등 그에 맞는 단계를 실행한다.

 

-sendmsg : HashMap에 저장 되어있는 Client에게 전송한다.

 

 

반응형
LIST