NIO 15

자바 NIO UDP 채널 발신자와 수신자와 통신

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ UDP 채널 :NIO에서 UDP 채널은 DatagramChannel 입니다. DatagramChannel도 TCP 채널과 마찬가지로블로킹 방식과 넌 블로킹 방식이 있습니다 발신자 :DatagramChannel 을 생성하기 위해서는 open()을 호출해야 합니다.open() 은 ProtocolPamily 인스턴스 타입의 매개값을 가집니다.=> 이 객체의 역할은 IPv4 와 IPv6를 구분하는 역할을 합니다.구현 객체는 StandardProtocalFamily 열거 상수를 사용합니다.DatagramChannel datagramCha..

자바 2017.05.05

자바 NIO 비동기 채널 채팅 클라이언트 만들기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 2017/05/04 - [자바] - 자바 NIO 비동기 채널 채팅 서버 만들기 클라이언트 클래스의 구조public class ClientExample extends Application { AsynchronousChannelGroup channelGroup; // 비동기 채널 그룹 필드 선언 AsynchronousSocketChannel socketChannel; // 비동기 소켓 채널 필드 선언 void startClient() {// 연결 시작 코드} void stopClient() {//연결 끊기 코드 } void rece..

자바 2017.05.04

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

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

자바 2017.05.04

자바 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