소켓을 검색 해보면 프로세스간 의 통신을 하기 위한 네트워크의 종착점이라고 설명을 한다.
220볼트 전기 전선을 사용하기 위해 멀티 어댑터 로 서로 연결 할때 그 돼지 코처럼 생긴
부분에 연결 하게 되면 A라는 지점에서 B라는 지점까지 서로 전기의 목적지가 어디인지
알게 되고 서로 전기를 흘러 보낼수 있기 때문에 기계를 사용 할 수 있다
이와 같이 소켓이라는 부분은 네트워크 적으로 서로 연결 시키기 위한
멀티 어댑터 같은 역할을 한다.
위의 그림은 소켓 통신이 이루어질 때 순서대로 나열 한 것으로
서버영역과, 클라이언트 영역 두 가지 영역이다. 예를 들어 A 라는 컴퓨터와 B 라는
컴퓨터가 서로 대화를 나눌 때 한쪽에서는 서버영역처럼 순서대로 절차를 진행하고
다른 쪽에서는 클라이언트 영역처럼 위에서 아래처럼 순서대로 절차를 진행 한 후
데이터 송수신 부분에서 서로 하고자 하는 말을 서로 주고 받으면 됩니다.
구성 방식에 따라 1:1 과 1:N 을 구성 할 수 있는데 서버는 1 이고 클라이언트는 1이 될수도 있고
N(다수) 가 될 수 있습니다.
네트워크(인터넷) 가 연결된 상태에서 컴퓨터가 서로 대화를 하기 위해선 소켓을 이용해
EndPoint (IP,Port 조합) 를 설정 하는데 데이터 수신의 목적지 라고 보시면 됩니다.
데이터를 보내는 출발지로부터 목적지 까지 데이터를 전송하게 되면 수신 받은 PC의 프로그램은 받은
데이터를 처리해 UI에 표출 할 수 있습니다.
Port 구분을 하고 있어서 같은 IP에 데이터를 수신 받더라도 다른 포트를 설정 함으로써
각 프로세스에서 데이터를 수신 할 수 있습니다.
이러한 이유로 한 IP에는 같은 Port 번호를 사용 할 수 없습니다.
[Sever]
Socket(): 소켓을 생성 하는데 이용됩니다.
Bind() : IP와 Port 번호를 설정 합니다.
Listen(): 클라이언트의 접근 요청에 수신 대기열 을 만들어 몇 개의 클라이언트를 대기 시킬지 결정 합니다.
Accept(): 클라이언트와의 연결을 기다립니다.
Read&Write(): 데이터 송수신시 읽기/쓰기를 합니다.
Close(): 연결된 소켓 객체를 닫습니다.
[Client]
Socket(): 소켓을 생성하는데 이용됩니다.
Connect(): 통신 할 서버의 설정된 IP와 Port번호에 통신을 시도합니다.
Read&Write(): 데이터 송수신시 읽기/쓰기를 합니다.
Close(): 연결된 소켓 객체를 닫습니다.
'Dev Story > C#' 카테고리의 다른 글
C# 영어문장 생성 프로그램 #2 (크몽 개발 의뢰건) (0) | 2021.11.17 |
---|---|
C# 영어문장 생성 프로그램 #1 (크몽 개발 의뢰건) (0) | 2021.11.04 |
WPF 차트 바인딩 하는 법 - 기초편 (크몽 개발의뢰건) (0) | 2021.11.03 |
원격 으로 PC 전원을 제어(WOL) 하는 셋팅 설명 및 C# 소스 공개 합니다. [셋팅 제대로 했는데 안될때 경우 팁 !! 도 있습니다.] (5) | 2019.02.22 |