자바 191

자바 NIO 비동기 채널 채팅 서버 만들기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 비동기 채널 서버 클래스의 구조 : public class ServerExample extends Application { AsynchronousChannelGroup channelGroup; //비동기 채널 그룹 필드 선언 AsynchronousServerSocketChannel serverSocketChannel; // 비동기 서버소켓 채널 필드 선언 List connections = new Vector(); // 연결된 클라이언트를 저장하는 List 타입의 connections필드선언하고 스레드에 안전한 Vector로 초기..

자바 2017.05.04

자바 NIO TCP 비동기 채널 - 서버 소켓 채널, 소켓 채널, 소켓 채널 데이터 통신

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 비동기 소켓 채널 :AsynchronousServerSocketChannel 은 두 개의 open() 정적 메소드를 호출해 얻을 수 있습니다.기본 비동기 채널 그룹에 포함되는 비동기 서버 소켓 채널은 얻는 방법은 아래와 같습니다.AsynchronousServerSocketChannel asynchronousServerSocketChannel = AsynchronousServerSocketChannel.open(); 별도로 비동기 채널 그룹을 생성 후 생성한 채널에 포함되는 비동기 서버 소켓 채널을 얻을려면 Asynchronous..

자바 2017.04.27

NIO TCP 비동기 채널의 특징, 비동기 채널 그룹

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ NIO 는 TCP 블로킹과 넌블로킹 채널 말고도 TCP 비동기 채널을 제공합니다.AnsynchronousServerSocketChannel,AnsynchronousSocketChannel위 두 채널은 각각 ServerSocketChannel, SocketChannel 에 대응됩니다. 비동기 채널 특징 :accept()연결 요청, connect()연결 수락, read()읽기, write()쓰기를 호출하면 TCP 비동기 채널은 즉시 리턴합니다.넌블로킹 방식과 동일하지만 차이점이 있습니다.위 메소드들을 호출하면 스레드풀에게 작업 처리..

자바 2017.04.26

자바 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 블로킹과 인터럽트

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 블로킹과 인터럽트IO 의 Socket 에서는 입력 스트림의 read() 와 write()로 인해서 작업 스레드가 블로킹 되었을 경우다른 스레드가 작업스레드의 interrupt()를 호출하더라도 블로킹 상태가 풀리지 않습니다.그랫서 Socket의 close()를 호출하여 SocketException을 발생시켜야 합니다. NIO의 SocketChannel 의 경우 read() 와 write() 로 인하여 작업 스레드가 블로킹이 되었을 경우다른 스레드가 작업 스레드의 interrupt()를 호출하면 ClosedByInterruptEx..

자바 2017.04.20

자바 NIO TCP 블로킹 채널 클라이언트 구현하기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 지난 포스팅에서는 NIO TCP 블로킹 채널을 이용해 서버를 구현해 보았는데요.2017/04/19 - [자바] - 자바 NIO TCP 블로킹 채널로 채팅 서버 구현하기 이번 포스팅에서는 채팅 클라이언트를 구현해보겠습니다. 1. 클라이언트 클래스의 구조 public class ClientExample extends Application { SocketChannel socketChannel; // 클라이언트 통신을 위해 SocketChannel 필드 선언 void startClient() { } void stopClient() { ..

자바 2017.04.20

자바 NIO TCP 블로킹 채널로 채팅 서버 구현하기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ ExecutorService(스레드풀) 과 ServerSocketChannel, SocketChannel 이 어떻게 사용되는지를채팅 서버 구현을 통해 알아보겠습니다. 이 포스팅에서는 JAVAFX에 대한 내용이 들어있습니다.아래 URL로 가셔서 JAVAFX에 대해 공부하시는 것을 추천드립니다.http://blog.naver.com/rain483/220605517395 1. 서버 클래스의 구조 public class ServerExample extends Application { ExecutorService executorServi..

자바 2017.04.19

자바 NIO TCP 블로킹 채널

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

자바 2017.04.18