tcp 5

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

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

자바 2017.04.27

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