반응형

애플리케이션  프로토콜의 정의

 

 

echo 클라이언트의 경우에는 수신할 데이터의 크기를 이전에 파악할 수 있었지만

 

이것이 불가능한 경우가 훨씬 많다.

 

이러한 경우에 필요한 것이 바로 어플리케이션 프로토콜의 정의이다.

 

앞서 구현했던 echo 서버 echo 클라이언트에서는 다음의 프로토콜(약속)을 새롭게 정의했었다.

 

"Q가 전달되면 연결을 종료"

 

마찬가지로 데이터의 송수신 과정에서도

 

데이터의 끝을 파악할 수 있는 프로토콜(약속)을 별도로 정의해서 데이터의 끝을 표현하거나

 

송수신될 데이터의 크기를 미리 알려줘서 그에 따를 대비가 가능해야 한다.

 

참고로

 

서버, 클라이언트의 구현 과정에서 이런 식으로 1개, 2개씩 만들어지는 약속을 모아서

 

애플리케이션 프로토콜이라고 한다.

 

이렇듯 어플리케이션 프로토콜은 대단한 것이 아니라

 

목적에 맞는 프로그램의 구현에 따라서 정의하게 되는 약속이다.

 

-

 

그렇다면 어플리케이션 프로토콜의 정의를 경험하기 위해서 프로그램을 하나 작성해 보면

 

서비스는 이러하다.

 

-

 

서버 클라이언트로부터 여러 개의 숫자와 연산자 정보를 전달받는다.

 

그러면 서버는 전달받은 숫자를 바탕으로 

 

덧셈, 뺄셈 또는 곱셈을 계산해서 그 결과를 클라이언트에게 전달한다.

 

-

 

예를 들어서 서버 3, 6, 9가 전달되고 덧셈연산이 요청된다면

 

클라이언트에서는 3+6+9를 계산한 결과 값이 수신되어야 하고

 

곱셈 연산이 요청된다면 

 

클라이언트에서는 3 x 6 x 9를 계산한 결과 값이 수신되어야 한다.

 

그리고 서버 13, 3, 4가 전달되고 뺄셈연산 요청되면 

 

클라이언트에서는 13 - 3 - 4를 한 결과 값이 수신되어야 한다.

 

즉, 뺄셈의 경우에는 첫 번째 정수를 대상으로 뺄셈이 진행되어야 한다.

 

-

 

이 정도의 서비스 정보를 가지고 직접 서버와 클라이언트를 구현해보는 것도 좋은 공부가 된다.

 

세부적인 사항은 직접 정의해 가면서 하는 것이다.

 

반응형

+ Recent posts