[vert.x] EchoClient 데모

지난번에는 NetServer를 이용해서 EchoServer를 만들고 telnet으로 접속해서 메아리를 확인했었다. 이번에는 NetClient를 이용해서 자바로 EchoClient를 만들었다.

서버 코드도 다시 볼까?

서버를 다시 띄워보자. 서버를 띄우려면 빌드를 하고, target을 classes가 들어있는 빌드 루트 디렉토리라고 가정하고..

target> vertx run -main echo.EchoSever -cp classes

이렇게 실행하면 기본적으로 코어 갯수만큼 인스턴스를 생성해준다. 맥북 에어에서 4개의 인스턴스가 생겼다.

다음은 클라이언트를 실행할 차례다..

target> vertx run -main echo.EchoClient -cp classes -instances 1

이번에는 -instances 옵셥으로 인스턴스를 한개만 띄우도록 설정했다 안그러면 기본으로 클라이언트가 4개 떠버리고… 그랬다가는 아래와 같은 불상사가 발생한다.

물론, 이번에도 telnet으로 접속할 수 있다.

target> telnet localhost 8080

코드는 NetServer와 매우 유사하다.

먼저, NetClient 객체를 만들고 connect() 메서드 호출하면서, handle(NetSocket)만 구현하면 되는 Handler<NetSocket> 객체를 만들어서 넘긴다. 이런 객체를 콜백 객체나 함수 객체라고 불러도 되지 않을까 싶다.

handle() 메서드 안에서 본격적으로 연결된 뒤에 할 일을 하면 되는데, 일단 클라이언트가 서버로부터 메시지를 받았을 때 무슨일을 할지 dataHandler()라는 메서드를 호출하면서, 또 다시 함수 객체로 Handler 객체를 넘긴다.

그담엔 메시지를 하나 보내본다.

끝.

Leave a Reply

Your email address will not be published. Required fields are marked *