자바 60

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

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

자바 2017.04.27

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

안드로이드 네이버 검색 API 사용할 때 XML 파싱하는 법

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 간단하게 포스팅합니다. 안드로이드에서 네이버 오픈 API 사용할 때네이버 오픈 API의 경우 request를 보내고 request에 대한 응답을 XML로 보내주는데요.안드로이드에서 받은 XML형식의 데이터를 파싱하는 방법입니다.String location = URLEncoder.encode(searchWord, "UTF-8"); String sendQuery = "https://openapi.naver.com/v1/search/local.xml?query=" + location + "&display=" + DISPLAY_COUN..

안드로이드 2017.04.19

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