넌블로킹 5

자바 NIO TCP 넌블로킹 채팅 서버, 채팅 클라이언트 구현하기 Java Nonblocking chatting server, chatting server

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 채팅 서버 구현하기 Chatting Server :Selector 셀렉터와 넌블로킹 ServerSocketChannel, SocketChannel 을 이용해넌블로킹 채텅 서버 구현에 대해 보겠습니다.본 포스팅에는 JavaFX에 대한 내용이 나옵니다.http://blog.naver.com/rain483/220605517395 1. 서버 클래스의 구조 public class ServerExample extends Application { Selector selector; // 넌블로킹의 핵심인 Selector 필드 선언 Server..

자바 2017.04.25

자바 NIO TCP 넌블로킹 - 선택된 키셋, 채널 작업 처리

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이전 포스팅과 이어집니다.2017/04/21 - [자바] - 자바 NIO TCP 넌블로킹 채널 - 넌블로킹 방식의 특징, 셀렉터의 생성과 등록 Selector 를 구현하려면 select()를 호출해야 합니다. select()는 관심 키셋에 저장된 SelectionKey 로부터작업 처리 준비가 됐다는 통보가 올 때까지 대기합니다(블로킹). 최소한 하나의 SelectionKey 로부터 작업 처리 준비가 됐다는 통보가 오면 리턴을 하고리턴 값은 통보해온 SelectionKey 의 수입니다. 위 세 종류의 select() 중에 첫 번째..

자바 2017.04.24

자바 NIO TCP 넌블로킹 채널 - 넌블로킹 방식의 특징, 셀렉터의 생성과 등록

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ ServerSocketChannel과 SocketChannel은 블로킹방식도 지원하지만 넌블로킹 방식도 지원합니다. 블로킹 방식의 경우 언제 클라이언트가 연결을 요청할지 알 수가 없어서 accept()에서 블로킹이 됩니다.그리고 언제 클라이언트가 데이터를 보낼지 알 수가 없어서 read()에서도 항상 받을 준비를 위해 블로킹이 됩니다. 이러한 방식의 단점은 ServerSocketChannel 과 SocketChannel 당 하나의 스레드가 할당되어야 한다는 것입니다. 연결된 클라이언트의 수가 많을수록 스레드의 수가 증가하고 서버..

자바 2017.04.21

자바 NIO TCP 블로킹 채널

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ TCP 블로킹 채널 :NIO 를 이용해 TCP 서버와 클라이언트 애플리케이션을 개발하려면 블로킹, 넌블로킹, 비동기 구현 방식 중 하나를골라야 합니다. 이 결정에 따라 구현이 완전히 달라집니다.복잡해진 부분이 없지 않지만, 네트워크 입출력의 성능과 효율성 면에서 선택 폭이 넓어졌기 때문에최적의 네크워크를 개발할 수 있게 되었씁니다. 서버 소켓 채널과 소켓 채널의 용도 :NIO 에서 TCP 네트워크 통신을 위해 사용하는 채널- java.nio.channels.ServerSocketChannel 은 클라이언트 SocketChanne..

자바 2017.04.18

자바 IO 와 NIO 의 차이점과 선택

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ NIO :자바 버전 4 부터 새로운 입출력 이라는 뜻에서 java.nio 패키지에 포함이 되었다가자바 버전 7로 버전 업을 하면서 자바 IO 와 NIO 사이의 일관성이 없는 클래스 설계를 바로 잡고비동기 채널 등의 네트워크를 지원을 대폭 강화시킨 NIO.2 API 가 추가되었습니다.NIO.2 는 java.nio의 하위 패키지( java.nio.channels, java.nio.charset, java.nio.file )에 통합되어 있습니다. 스트림과 채널 IO 는 스트림 기반입니다.스트림은 입력 스트림과 출력 스트림이 구분되어 ..

자바 2017.04.14