본문 바로가기
728x90
반응형

javase10

CODE [20.08.05/Day_20] Java SE / Network 네트워크 | 다수의 클라이언트에서 메아리 서비스 구현 (멀티 스레드 활용) step4 다수의 클라이언트에게 지속적으로 메아리 서비스하는 서버 구축 다수의 클라이언트에게 지속적으로 서비스하기 위해서는 서버측에 멀티 스레드가 필요하다. 클라이언트가 접속할 때, 서버는 접속한 클라이언트에 대응되는 소켓을 accept()으로 반환받고, 클라이언트와 실제 통신할 ServerWorker Thread 생성 시에 생성자에 해당 소켓을 할당한다. 이렇게 ServerWorker Thread를 생성하고, start() 하는 역할까지가 MultiServer의 할일이다. ⇒ ServerWorker는 MultiServer내 while문에 삽입되어 작동하는 역할을 한다. [ 클라이언트 측 필요 클래스 ] 클라이언트는 step3의 Client를 그대로 사용해도 된다. (https://creamilk88.t.. 2020. 8. 5.
CODE [20.08.04/Day_19] Java SE / Network 네트워크 | 메아리 서버, 클라이언트 프로그램 구현 step3 메아리 서버, 클라이언트 구성 서버는 클라이언트가 보낸 메세지를 입력받아 자신의 콘솔에 출력하고, 다시 그 메세지를 클라이언트로 보내는 역할을 지속적으로 한다. 클라이언트는 스캐너로 콘솔에서 서버에 보낼 메세지를 입력받아 서버로 출력하고, 서버가 보낸 메세지를 다시 입력받아 자신의 콘솔에 출력하는 작업을 지속적으로 한다. 실행 예) Client Program 서버에 보낼 메세지 : 안녕 메아리 서버 (→enter) 서버에서 온 메세지 : 안녕 메아리 서버 *server* Server Program 12192.168.0.115 님이 입장하셨습니다. 12192.168.0.115 님 메세지 : 안녕 메아리 서버 Client Program : 스캐너로 입력받아 서버로 출력, 서버에서 보낸 메세지를 입.. 2020. 8. 4.
[20.08.04/Day_19] Java SE / Network 네트워크 ( Protocol 프로토콜 - TCP-IP & Port | Socket 소켓 ) [ Network 네트워크 ] java 기반의 TCP-IP Network Programming java.net 패키지에 주요 class들이 있다. Protocol 프로토콜 : 통신 규약(약속) TCP/IP : 인터넷 상의 통신 규약 TCP (Transmission Control Protocol) : 전송 제어 프로토콜 데이터 전달 보증 → 신뢰성이 높다. IP (Internet Protocol) : ip address(전화번호와 유사)로 호스트 주소 지정 * 자신의 ip는 cmd창에서 igconfig로 확인할 수 있다. ex) 나의 IP 주소 → 192.168.0.115 참고) DNS (Domain Name Service) : www.daum.net → ip와 연결되는 Domain name이다. Port.. 2020. 8. 4.
CODE [20.08.03/Day_18] Java SE / IO & Thread 스레드 | 파일 생성 및 이동 [ IO & Thread ] Interface /CommonInfo.java package step8; public interface CommonInfo { //public static final // MAKE_PATH : 파일을 생성하여 저장하는 directory String MAKE_PATH = "C:\\kosta203\\test\\repository"; // MUSIC_PATH : 위 경로에 저장된 파일 중 mp3 확장자를 가진 파일들만 이동시키는 directory String MUSIC_PATH = "C:\\kosta203\\test\\music"; // MOVIE_PATH : 위 경로에 저장된 파일 중 avi 확장자를 가진 파일들만 이동시키는 directory String MOVIE_PATH =.. 2020. 8. 3.
[20.08.03/Day_18] Java SE / Thread 스레드 (multi thread, Daemon Thread 데몬 스레드, Thread Scheduling, Synchronized 동기화) [ Thread 스레드 ] : 프로세스 내의 세부적 실행 단위(사전적 의미는 '실') ⇒ 현재 실행 중인 프로그램의 세부적 실행단위 * process는 현재 실행중인 프로그램을 의미 ex) 예제 1. 동영상 재생 프로그램을 실행(process)한다. 영상서비스, 음향서비스, 자막서비스가 thread 로 동작된다. 예제 2. 클라이언트 프로그램 채팅 클라이언트 프로그램을 실행(process)한다. → 채팅 클라이언트 프로세스 내에 필수적인 실행단위는 두 가지이다. → 동시에 서비스되어야 하므로 멀티 스레드가 필요하다. 1. 친구들의 메세지를 입력받는 스레드 2. 친구들에게 메세지를 출력하는 스레드 예제 3. 서버 프로그램 채팅 서버 프로그램을 실행(process)한다. → 접속한 클라이언트 모두 서비스를 .. 2020. 8. 3.
[20.07.31/Day_17] Java SE / IO(Object Serialization 객체 직렬화), serialVersionUID, transient [ Review 복습 ] Stream java.io의 대표 abstract class Byte Stream 1 byte (음원, 이미지 등) Character Stream 2 byte (텍스트 등) 입력 InputStream Reader 출력 OutputStream Write Node Stream : 연결되는 스트림(없으면 생성), socat Processing Stream : 기능 동작하는 스트림(보조, 부가기능) [코딩 패턴] Node Stream Processing Stream Output new FileWriter new PrintWriter | .println() 출력 | .close() Input new FileReader new BufferedReader | .readLine() 읽기(입력).. 2020. 7. 31.
[20.07.30/Day_16] Java SE / String, StringBuilder, StringBuffer | I/O (입력과 출력) Stream 스트림 [ Review 복습 ] interface의 특징 1. 구현측과 사용자간의 약속 2. 다중 상속의 장점 -> 다양한 계층구조 형성을 통한 다형성 환경 제공 부모타입 Animal a = new Person(); 상위 인터페이스 타입 Flyer f = new Bird(); Collection set : 중복 X list : 순서(index)가 있음 Map : key-value ArrayList : 빠른 검색 용이 LinkedList : 삽입/삭제 용이 Stack / Queue Stack : 후입선출 Last in, First out (LIFO) Queue : 선입선출 First in, First out (FIFO) - message처리할 때 많이 쓰임 Iterator : 반복자 : 어떤 캔이든 따볼 수 있듯.. 2020. 7. 30.
[20.07.29/Day_15] Java SE / Collection 컬렉션(stack 스택, Queue 큐) , Exception(try, catch, finally | throws, throw) [ Stack 스택 / Queue 큐 ] java.util.collection stack : (LIFO) last-in-first-out 마지막에 추가된 요소가 먼저 추출되는 자료구조 : pop()메서드를 이용하면, 추출되며 사라짐. stack 예제 import java.util.Stack; public class TestStack { public static void main(String[] args) { Stack stack = new Stack(); // 축적 메서드 : push(value) stack.push("a"); stack.push("b"); stack.push("c"); stack.push("d"); stack.push("e"); System.out.println(stack); // [a.. 2020. 7. 29.
CODE [20.07.29/Day_15] Java SE / Stack과 Queue, Exception(Exception(try, catch, finally | throws, throw) [ Stack ] empty() 메서드를 이용하여, 모든 요소 추출 /TestStack.java import java.util.Stack; public class TestStack { public static void main(String[] args) { Stack stack = new Stack(); // 축적 메서드 : push(value) stack.push("a"); stack.push("b"); stack.push("c"); stack.push("d"); stack.push("e"); System.out.println(stack); // [a, b, c, d, e] // 요소 유무 확인 메서드 :empty() // 요소 있으면 False, 비어있으면 True System.out.println(.. 2020. 7. 29.
728x90
반응형