본문 바로가기
프로그래밍 언어

[C#/WPF] 소켓통신,네트워크통신개념/채팅프로그램 만들기 :: LAZY DEVELOPER

by LAZY모닝 2022. 5. 17.
반응형

 

1강 : 네트워크 통신 / 소켓 통신 개념  https://lazymanana.tistory.com/22

2강 : TCPListener / TCPClient -- 업데이트 예정

3강 : TCPListner, TCPClient을 이용한 채팅프로그램 만들기1 -- 업데이트 예정

4강 : TCPListner, TCPClient을 이용한 채팅프로그램 만들기2 -- 업데이트 예정

5강 : TCPListner, TCPClient을 이용한 채팅프로그램 만들기3 -- 업데이트 예정

 

 

 

 

C# WPF 소켓통신 관련

블로그 글들은 많은데 명확하게 잘 정리되어 있는곳이 없어 C# WPF 소켓통신

처음개념부터 채팅프로그램 생성까지 명확하게 알려드릴려고합니다

 

 

C#, WPF 소켓통신 한번 공부하고나면

두번 공부할일이 없도록 만들었으니, 하나씩 배워가며

정리하도록 합시다!

 

 

 

네트워크(Network)통신이란?

우리가 흔히 이야기하는 네트워크 통신이 뭘까요..?

네트워크통신을 영어로하면  Network입니다.

Net(망)을 이용하여 작업을 한다는 의미입니다.

 컴퓨터를 연결하여 Net(망)을 구성하고,

이들간의 자원을 실시간으로 공유하는 작업을 네트워크 통신이라 합니다.

 

 

소켓(Socket)통신이란?

 

 소켓이라는 용어는 네트워크통신하면서 

많이 들어보셨을꺼라 생각해요.

 

소켓(Socket)은 통신을 하기위한 창구역활이라고 생각하면됩니다.

네트워크 통신을 하기위해서 창구가 필요한데

이 창구같은 역활을 하는것이 소켓(Socket)입니다.

 

TCP / UDP

이러한 소켓 통신방식에는 여러 통신 방식이 있습니다.

네트워크 통신에서 가장 많이 쓰이는 TCP(Transmission Control Protocol),

UDP(User Datagram Protocal)가 대표적입니다.

 

우선 TCP 데이터 송신과정을 확인해봅시다.

 

TCP 통신과정

TCP 통신과정을 확인해보면, 통신 연결부터 종료까지

수신자의 응답을 확인하고 데이터를 보냅니다.

그러기에 속도면에서는 조금 느릴 수 있지만, 안정적인 통신을 

할 수 있습니다. 

 

 

그럼 UDP 통신은 어떻게 될지 한번 봅시다.

수신자의 응답과 상관없이

데이터를 일방적으로 보냅니다.

그렇기에 제대로 데이터가 도착했는지는 알 수 없습니다.

그래서 송신중에 데이터를 읽어도 되는 경우에 사용한다.

 

 

 

.Net 네트워크 클래스

자. 그럼 프로그래밍 즉 코딩상에서

네트워크 통신을 하기 위해서는 어떻게 코딩해야할까요..?

 

아래의 그림을 먼저 봅시다.

 

네트워크 통신을 하기 위해서는 Socket이라는 창구를 이용하여 

통신을 합니다. 창구 역활인 Socket 클래스를 통하여 네트워크 통신을

할 수도 있지만, WPF C#에는 Socket 통신을 편리하게 할 수 있는 

TCPClient 클래스와 TCPListener 클래스가 존재합니다.

서버쪽은 TCPListener를 이용하고, 클라이언트쪽은 TCPClient클래스를 이용하여

네트워크 통신을 하게됩니다. 이는 TCP통신을 위한 방식이고, UDP 통신은 일방적으로

전송만 하는 시스템이기때문에 UDP Client만 필요합니다.

 

이로써 기본적인 개념은 여기까지이고,

직접 통신 코드를 작성하면서 좀 더 세부적으로 알아보도록 하겠습니다.

 

 

반응형