블로킹 6

자바 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 블로킹 채널

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

자바 2017.04.18

자바 NIO 파일 비동기 채널 - AsynchronousFileChannel 생성과 닫기, 파일 읽기 , 파일 쓰기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 파일 비동기 채널 :FileChannel 의 read() 와 write() 는 파일의 입출력 동안에 블로킹됩니다.UI 변경이나 이벤트를 처리하는 스레드에서 위 두 개의 메소드를 호출하면 블로킹되는 동안 UI 갱신이나 이벤트 처리가 불가능합니다.때문에 별도의 작업 스레드를 생성해 위 메소드들을 호출해야 합니다.그리고 동시에 처리해야 할 파일 수가 많으면 스레드 수도 증가를 하기 때문에 문제가 됩니다.=> java NIO는 불특정 다수의 파일이나 대용량 파일의 입출력 작업을 위해 비동기 파일 채널을 제공합니다. Asynchronou..

자바 2017.04.17

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

자바 Socket 데이터 통신과 스레드 병렬 처리

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 2017/04/11 - [자바] - 자바 TCP 네트워킹, ServerSocket과 Socket / ServerSocet의 생성 및 연결 수락 이전 포스팅과 이어집니다~ 클라이어트가 연결 요청을 하고 서버가 연결 수락을 했다면?=> 양쪽의 Socket으로부터 각각 입력 스트림과 출력 스트림을 얻을 수 있습니다. InputStream inputStream = socket.getInputStream();OutputStream outputStream = socket.getOutputStream(); 데이터를 보내려면 보낼 데이터를 b..

자바 2017.04.11