java 비동기 소켓 예제

비동기 소켓 채널은 두 가지 방법 중 하나로 만들어집니다. 새로 만든 AsynchronousSocketChannel이 클래스에 의해 정의 된 열린 메서드 중 하나를 호출 하 여 만들어집니다. 새로 만든 채널은 열려 있지만 아직 연결되지 않았습니다. 연결된 비동기 소켓 채널은 비동기 서버소켓 채널의 소켓에 연결될 때 만들어집니다. 임의의 기존 소켓에 대한 비동기 소켓 채널을 만들 수 없습니다. 이 문서에서는 Java NIO.2 비동기 소켓 채널 API를 살펴봤습니다. 이러한 새 API를 사용하여 서버와 클라이언트를 구축하는 프로세스를 단계별로 진행할 수 있었습니다. 그렇지 않으면 이 메서드는 비동기 ByteChannel.read(ByteBuffer, 개체, CompletionHandler) 메서드와 동일한 방식으로 작동합니다. 자바 NIO는 내가 가장 좋아하는 주제입니다. 지난 2년 동안 NIO와 함께 일해 왔으며 프로덕션 환경에서 이 코드를 자유롭게 사용할 수 있는 독자를 위해 간단한 서버-클라이언트 코드를 공유하고 싶습니다. 이 문서의 예제는 Windows OS 환경에서 컴파일되고 실행됩니다. Java SE 7은 코드를 실행하려면 필요합니다.

다음은 클라이언트/서버 응용 프로그램입니다. 클라이언트는 비동기 소켓 채널과 서버애비동기서버소켓채널을 사용합니다. 클라이언트는 메시지를 보내고 서버는 메시지를 수신합니다. 이들은 두 개의 독립적 인 프로그램입니다. 비동기소켓채널 추상 클래스는 비동기바이트채널 및 네트워크채널을 구현한다. 이 클래스는 java.nio.channels 패키지에 정의되어 있습니다. 에 의해 게시: 비동기 소켓 채널 12 월 2 일에 Prasad Saya 12 월 2, 2014 0 보기 소켓 옵션은 setOption 메서드를 사용 하 여 구성 됩니다. 비동기 소켓 채널은 다음과 같은 옵션을 지원합니다: 소켓 프로그래밍은 서로 통신하는 두 시스템으로 귀결됩니다. 네트워크 통신은 전송 제어 프로토콜(TCP)과 UDP(사용자 데이터그램 프로토콜)의 두 가지 맛으로 제공됩니다. TCP와 UDP는 서로 다른 용도로 사용되며 둘 다 고유한 제약 조건을 가지고 있습니다: JDK 1.4를 시작하면 NIO는 모든 Java 프로그래머가 사용자 지정 네이티브 코드를 처리하지 않고도 매우 빠른 입력/출력을 구현할 수 있도록 만들어졌습니다.

NIO는 java.nio.buffer 라이브러리를 사용하여 모든 운영 체제에서 내부적으로 버퍼를 배수하고 채우는 간단한 I/O와 비교합니다. 생성자 내에서, 우리는 비동기 ServerSocketChannel을 만들고 우리가 전에 했던 것과 같은 로컬 주소에 바인딩: 이것은 java.nio.channel.AsynchronousSocketChannel이 문서에서, 우리는 간단한 서버를 구축 하는 방법을 보여 줍니다. 그리고 자바 7 NIO.2 채널 API를 사용하여 클라이언트. 90년대 후반에 저는 유닉스 버클리 소켓과 Windows WinSock 코드를 작성하는 데 며칠을 보냈던 온라인 비디오 게임 회사에서 일하고 있었습니다. 내 임무는 비디오 게임 클라이언트가 게임 서버와 통신할 수 있도록 하는 것이었습니다. Java 소켓 코드를 작성할 기회가 있었을 때 네트워크 프로그래밍에 대한 Java의 간소화되고 간단한 접근 방식에 놀랐습니다. Java는 원래 스마트 장치가 서로 통신할 수 있도록 설계되었기 때문에 데스크톱 및 서버 응용 프로그램에 매우 잘 번역되었기 때문에 놀라운 일이 아닙니다.