자바(21)
-
Creating a simple echo client
SimpleEchoClient class를 선언하며 시작합니다. 메인 메서드에서는 다음과 같이 애플리케이션 시작 메시지가 표현됩니다. public class SimpleEchoClient { public static void main(String args[]) { System.out.println("Simple Echo Client"); ... } } 서버에 연결하려면 Socket 인스턴스를 만들어야합니다. 다음 예시에서는 서버와 클라이언트가 동일한 컴퓨터에서 실행중입니다. InetAddress 클래스의 static getLocalHost 메서드는 주소를 리턴하고, port 6000과 함께 Socket class의 생성자에서 사용됩니다. 서버와 클라이언트가 서로 다른 컴퓨터에 위치한 경우엔, localA..
2023.02.14 -
Creating a simple echo server
서버가 요청하는 애플리케이션과 소통하려면 특수 소프트웨어를 사용하여 메시지를 주고 받습니다. 이 소프트웨어를 소켓이라고 합니다. 하나의 소켓은 클라이언트 측에 있습니다. 다른 소켓은 서버쪽에 있습니다. 그들끼리 연결하여 통신할 수 있습니다! 소켓의 종류에는 여러가지가 있습니다. datagram sockets stream sockets (TCP를 자주 사용하는) raw sockets(일반적으로 IP 수준에서 쓰이는) 우리는 우리의 클라이언트/서버용 TCP sockets에 초점을 맞출 것입니다. 간단한 에코서버를 만들어보겠습니다. 이 서버는 클라이언트로부터 텍스트 메시지를 받고, 즉시 해당 클라이언트로 다시 보냅니다. 단순합니다. SimpleEchoServer class의 정의부터 해보겠습니다. 초기 서버 ..
2023.02.14 -
The client/server architecture
클라이언트와 서버가 생성됩니다. 서버는 IP 주소를 가진 머신에 설치됩니다. 둘 이상의 서버가 지정된 시간에 시스템에서 실행됩니다. 운영 체제가 머신에서 서비스를 요청받았을 때, port number라는 것을 받게 됩니다. 이 port number는 요청을 전달해야하는 서버를 식별해주는 역할을 합니다. 따라서 서버는 IP주소와 port number의 조합으로 식별됩니다. 일반적으로, 클라이언트는 -> 서버에게 요청합니다. 서버는 요청을 받고, 응답을 다시 보냅니다. 요청/응답 및 커뮤니케이션에 사용되는 프로토콜은 클라이언트/서버에 따라 달라집니다. 여기서 프로토콜은 컴퓨터 내부 또는 컴퓨터 사이에서 데이터를 교환할 때의 어떤 규칙, 약속같은 겁니다. 때때로 잘 문서화된 Hypertext Transfer ..
2023.02.14 -
Using the URLConnection class withbuffers and channels
try { URL url = new URL("http://www.google.com"); URLConnection urlConnection = url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); ReadableByteChannel channel = Channels.newChannel(inputStream); ByteBuffer buffer = ByteBuffer.allocate(64); String line = null; while (channel.read(buffer) > 0) {System.out.println(new String(buffer.array())); buffer.clear(); } channel.c..
2023.02.14 -
Using the URLConnection class
서버에 접근하는 간단한 방법! URLConnection class를 사용하는 것입니다. 이 클래스는 어플리케이션과 URL instance사이를 연결해줍니다. try { URL url = new URL("http://www.google.com"); URLConnection urlConnection = url.openConnection(); BufferedReader br = new BufferedReader ( new InputStreamReader(urlConnection.getInputStream()) ); String line; while ((line = br.readLine()) != null) { System.out.println(line);} br.close(); } catch (IOExcept..
2023.02.14 -
NIO support
NIO New Input/Output 채널(Channel)이 양방향 버퍼를 통해 외부 데이터와 통신한다. java.io, java.nio와 java.nio의 하위패키지는 자바에서 IO처리를 할 때 쓰입니다. IO는 Input Output의 약자이며, NIO는 IO와 달리 읽기/쓰기를 하나의 통로를 통해 해결합니다. java.nio package NIO 패키지에는 세 가지의 주요 개념이 사용됩니다. 1. Channel: 애플리케이션 간의 데이터 스트림을 표현합니다. File Channel: 파일과 함께 작동 DatagramChannel: UDP 통신을 지원 SocketChannel: TCP client와 함께 사용 ServerSocketChannel: TCP server와 함께 사용 2. Buffer: 채..
2023.02.14