오늘이라도
34. Networking ② 본문
https://github.com/upcake/Class_Examples
교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.
① ServerSocket, Socket 생성 ▶ ServerSocket에 포트를 할당한다.
② 수신 스레드 객체 생성 후 start() 메서드, socket을 매개 변수로 넣는다.
③ 송신 스레드 객체 생성 후 start() 메서드, socket을 매개 변수로 넣는다.
④ 서버 소켓을 닫아준다, 소켓은 스레드에서 사용하기 때문에 서버에서 닫지 않는다.
① Socket 생성 ▶ 서버의 ip와 포트를 할당한다.
② 송신 스레드 객체 생성 후 start() 메서드 ▶ socket을 매개 변수로 넣는다.
③ 수신 스레드 객체 생성 후 start() 메서드 ▶ socket을 매개 변수로 넣는다.
④ 소켓은 스레드에서 사용하기 때문에 클라이언트에서 닫지 않는다.
① 소켓을 매개 변수로 받기 때문에 멤버 변수로 선언하고 기본 생성자 메서드를 만든다.
② Thread 클래스를 상속받고 run() 메서드를 오버라이드 한다.
③ 문자를 송신하기 때문에 OutputStream, PrintWriter 브릿지를 만든다.
④ 키보드로 입력하기 위해 Scanner 클래스 객체를 만든다.
⑤ 메시지를 계속 입력하기 위해 while() 문을 사용한다.
⑥ 메시지를 입력하는 문단을 while() 문 내부에 작성하고 종료 단어 bye를 만든다.
⑦ 메시지를 송신하기 위해 pw.prinln()과 pw.flush() 메서드를 사용한다.
⑧ 사용이 끝난 스캐너와 소켓을 닫아준다.
① 소켓을 매개 변수로 받기 때문에 멤버 변수로 선언하고 기본 생성자 메서드를 만든다.
② Thread 클래스를 상속받고 run() 메서드를 오버라이드 한다.
③ 문자를 수신하기 때문에 InputStream, InputStreamReader, BufferedReader 브릿지를 만든다.
④ 누가 접속했는지 알기 위해 getInetAddress()와 getHostName()으로 접속자 이름을 받는다.
⑤ 메시지를 계속 수신하기 위해 while() 문을 사용한다.
⑥ while() 문 내부에 수신받는 문단을 작성하고 종료 단어 bye가 입력되었을 때 종료되는 문단도 작성한다.
⑦ 사용이 끝난 소켓을 닫아준다.
① ServerSocket, Socket 생성 ▶ ServerSocket에 포트를 할당한다.
② 불특정 다수가 서버로 들어오기 때문에 while() 문을 사용한다.
③ while() 문 내부에 여러 접속을 받기 위한 Person 스레드 객체 생성 후 start() 메서드, socket을 매개 변수로 넣는다.
④ 서버 소켓과 소켓을 스레드에서 사용하기 때문에 서버에서 닫지 않는다.
① Socket 생성 ▶ 서버의 ip와 포트를 할당한다.
② 대화명을 args [] 배열에 받도록 안내문을 작성한다.
③ 송신 스레드 객체 생성 후 start() 메서드 ▶ socket을 매개 변수로 넣는다.
④ 수신 스레드 객체 생성 후 start() 메서드 ▶ socket을 매개 변수로 넣는다.
⑤ 소켓은 스레드에서 사용하기 때문에 클라이언트에서 닫지 않는다.
① 소켓과 대화명을 매개 변수로 받기 때문에 멤버 변수로 선언하고 기본 생성자 메서드를 만든다.
② Thread 클래스를 상속받고 run() 메서드를 오버라이드 한다.
③ 문자를 송신하기 때문에 OutputStream, PrintWriter 브릿지를 만든다.
④ 매개 변수로 받은 대화명을 송신하기 위해 pw.prinln()과 pw.flush() 메서드를 사용한다.
⑤ 키보드로 입력하기 위해 Scanner 클래스 객체를 만든다.
⑥ 메시지를 계속 입력하기 위해 while() 문을 사용한다.
⑦ 메시지를 입력하는 문단을 while() 문 내부에 작성하고 종료 단어 bye를 만든다.
⑧종료할 때 사용이 끝난 PrintWriter 브릿지와 Scanner 클래스를 닫아 준다.
⑨ 입력받은 메시지를 송신하기 위해 pw.prinln()과 pw.flush() 메서드를 사용한다.
⑩ 사용이 끝난 소켓을 닫아준다.
① 소켓을 매개 변수로 받기 때문에 멤버 변수로 선언하고 기본 생성자 메서드를 만든다.
② Thread 클래스를 상속받고 run() 메서드를 오버라이드 한다.
③ 문자를 수신하기 때문에 InputStream, InputStreamReader, BufferedReader 브릿지를 만든다.
④ 메시지를 계속 수신하기 위해 while() 문을 사용한다.
⑤ while() 문 내부에 수신받는 문단을 작성하고 종료 단어 bye가 입력되었을 때 종료되는 문단도 작성한다.
⑥ 종료할 때 사용이 끝난 BufferedReader 브릿지도 닫아준다.
⑦ 사용이 끝난 소켓을 닫아준다.
① 제일 먼저 접속한 클라이언트의 모든 정보를 받도록 static을 사용하여 초기화 블록을 만들어준다.
② 초기화 블록에 PrintWriter 타입만 다루도록 제네릭스를 설정한 ArrayList를 선언 및 초기화해준다.
③ 멤버 변수 Socket과 PrintWriter를 선언하고 socket을 매개변수로 받는 생성자를 만들어준다.
④ (추후 수정)
⑤ Thread 클래스를 상속받고 run() 메서드를 오버 라이딩한다.
⑥ 접속한 사람의 정보를 알기 위해 getInetAddress()와 getHostName() 메서드를 사용한다.
⑦ 대화명 name을 readLine()으로 입력받고 sendAll로 입장 메시지를 접속해 있는 사용자들에게 뿌려준다.
⑧ 사용자가 입력한 내용을 String msg로 받아서 뿌려준다.
⑨ 퇴장 시 퇴장 메시지를 뿌려준다.
'취업성공패키지 SW 개발자 교육 > Java' 카테고리의 다른 글
36. 외부 API ② : Jericho HTML Parser 이용하기 (0) | 2020.04.08 |
---|---|
35. 외부 API ① (0) | 2020.04.07 |
33. Networking ① (0) | 2020.04.02 |
32. IO ③ (0) | 2020.04.01 |
31. IO ② (0) | 2020.03.31 |