'자바배우기'에 해당되는 글 67건

  1. 2008.01.23 Socket-3.서버 vs 클라이언트

네트워크 프로그램을 처음 할 때(네트워크를 이용해서 읽고,쓰기를 처음 할 때)

참 이상하게 생각한 것중의 하나가 "어떻게 읽고,쓰기를 시작할 수 있을까, 어떻게 읽고,

쓰기에 참여하는 두 당사자가 아무 준비 없이 서로 떨어져 있는 곳에서 읽고,쓰기가 가능

할까?" 하는 것이었습니다.

 하지만 실제로는 아무 준비 없이 되는 것은 하나도 없습니다. 네트워크를 이용해서 읽고,

쓰기에 참여하는 두 당사자는 철저하게 준비되고 계획되어야만 합니다. , 인위적으로

환경을 설정해 주어야지만 네트워크를 통해서 읽고,쓰기를 할 수 있습니다.

 

 네트워크를 이용한 읽고,쓰기에 참여하는 두 당사자를 흔히 클라이언트와 서버라고 부르는

,이들을 클라이언트와 서버라고 부르는 가장 기본적인 이유는 한 쪽은 능동적으로 읽거나

쓰면서 서비스를 요청하고, 다른 한쪽은 수동적으로 그 읽고,쓰기에 응해주기 때문입니다.

 

클라이언트와 서버의 개념은 서비스를 요청하는 쪽, 읽거나 쓰려고 하는 쪽이 클라이언트

이고 거기에 응해주는 쪽이 서버로 생각하는 것이 가장 기본적입니다.

클라이언트와 서버의 관계를 TCP 프로그래밍과 연결지어 생각하면 TCP 연결을 능동적으로

하는 쪽이 클라이언트이고, TCP 연결을 수동적으로 하는 쪽이 서버입니다.

 

네트워크를 이용해서 읽고,쓰고자 한다면 클라이언트에서도 준비해야 할 내용이 있고,

서버에서도 준비해야할 내용이 있습니다. 만약 이것이 준비 안된다면 네트워크를 통한 읽고,

쓰기는 불가능합니다. 닭이 먼저일까? 달걀이 먼저일까?

이 질문은 뾰족한 정답이 없습니다만 클라이언트와 서버와의 관계에서는 명명 백백합니다.

클라이언트가 먼저일까? 서버가 먼저일까? 당근 서버가 먼저입니다.

서버가 네트워크를 이용해서 읽고,쓰기를 할 수 있도록 준비를 해놓고 있지 않으면

클라이언트는 네트워크를 통해서 읽고,쓰기를 전혀 할 수 없습니다.

만약 서버가 네트워크를 이용한 읽고,쓰기를 위해 준비를 모두 바친 상태라고 한다면

서버는 클라이언트가 네트워크를 이용해 읽고,쓰기할 수 있도록 온 동네 방네에 알려주어야

합니다.

그래야만 클라이언트가 네트워크에서 서비스를 제공하는 서버를 찾을 수 있으니까요.

Posted by
,