728x90
- 1강 ( 네트워크 기본 구조와 원리 2/2 )
- TCP 서버의 기본구조
- 크게 3개 : (1) 대기 상태 -> (2) 접속요청 -> (3) 데이터 전송
- (1) 대기 상태 : 서버는 클라이언트 요청이 오기전까지 대기한다.
- (2) 접속요청 : 클라이언트가 서버에 접속요청을 요구하고 서버에서 socket이 생성된다.
- (3) 데이터 전송 : 접속 요청이 받아드려지면 데이터 전송이 받아드려지며 시작된다.
- TCP 서버와 클래스
- TcpListener
- 연결과 TcpClient객체 생성
- 접속될 클라이언트를 받을 준비를 한다. 대기상태를 만들어줌 , TcpClient : 서버도 사용하고 클라이언트도 사용한다 마치 소켓?같다?
- 서버는 TCpListener , TcpClient 두개만들고 클라는 TcpClient만 만들면된다.
- TcpClient
- 데이터 전송
- NetworkStream
- C#에서 데이터 전송을 쉽게하기위해 제공하는 클래스
- 이 네트워크 스트림 (네트워크흐름)은 뭔가 데이터를 주고받게한다.
- Tcp 서버와 클래스 관계
- (1) 대기상태 (2)접속요청 사이에서 NetworkStream이 관여해서 통신을 도와준다.
- 위의 관계는 서버와 클라이언트 1:1 접속
- 위의 관계는 다수의 클라이언트와 서버 스레드가 필요하다.
- 서버는 스레드를 돌리다보면 메모리를 차지하기때문에 서버는 메모리 용량이 클라이언트에 비해 더 많이 필요하다.
- UDP 서버와 클라이언트
- 기본적인것은 TCP와 동일
- 기위해TCP는 클라이언트의 요청을 받기위해 대기한다.
- 그러나 UDP 서버는 클라이언트와 연결되는것이아니라 데이터를 받기위해 대기할뿐 클라이언트와 연결되지 않는다. 비연결형이라고 많이 이야기한다.
- 비연결형이기에 IP 주소와 port번호를 알면 데이터 전송이 가능하다.
- UDPClient (클래스 )
- 서버와 클라이언트 모두 이것 하나만 사용한다.
- 단순히 주고 받기만 하기에 하나만 필요하다.
- 그룹 처리
- udpClient.JoinMulticast () 사용 //
- 채팅서버와 같이 한그룹내에 들어온 클라이언트에 대해서 동일한 메세지를 받게 하기위해 사용한다.
- 이미 그룹처리를 위한 메서드가있기에 찾아서 적절하게 쓰면된다.
- 만약 필요한 기능의 클래스가 없을때는 UDPClient를 상속받아서 필요한 기능 추가 후 새로운 클래스 추가하면된다.
- UDP 다중 구조
728x90
'기타 공부 기록 > csharpnetwork인강' 카테고리의 다른 글
네트워크 클래스 (4/5) (0) | 2022.01.12 |
---|---|
네트워크 클래스 (2/5) (0) | 2022.01.11 |
네트워크 클래스 (3/5) (0) | 2022.01.11 |
( 네트워크 클래스 1/5 ) (0) | 2022.01.07 |
c_sharp_network강의 "네트워크 기본 구조와 원리 1/2 " (0) | 2022.01.05 |