728x90
- 스래드 (2/2)
- 스레드 주요 속성과 메서드
- 스레드 속성
- Name
- 스레드의 이름? 명칭 지정가능
- IsAlive
- true or false 반환 현재 스레드 동작여부 반환
- IsBackground (
- foreground 포그라운드 스레드 : 주스레드 끝나도 계속 진행중인 스레드
- background 백그라운드 스레드 : 주스레드가있고 부스레드가 있을때 주스레드종료와 동시에 부스레드도 종료
- public bool IsBackgrount { get; set; }
- CurrentThread
- public static Thread CurrentThread {get; }
- 스레드 메서드
- Start()
- 스레드 시작
- Join()
- 스레드가 종료될 때까지 대기
- Abort()
- 이 함수를 호출한 곳의 현재 스레드를 중지
- ThreadAbortException 발생
- try catch 로 감싸줘야함
- Resume(), Suspend() 는 닷넷 2.0 버전 이후부터 사용하지 않는 메서드이며 제거됨
출처 : MSDN
- 윈도우 네트워크 프로그래밍에 스레드 적용
- 서버
- 서버 코드 안에서 스레드의 대상?
- tcpClient가 여러 개 생겨야함 다수의 클라이언트가 하나에 서버에 연결을 요구함 결국 서버에서 스레드를 통해서 요청이 올때마다 스레드를 돌려서 연결을 해주면 서버가 멈추는 현상이 없다.
- 또한 클라이언트와 서버사이에 데이터를 주고받을때 패킷을 주고받을때도 메인 주스레드와 다른 스레드에서 주고받아야한다.
- TcpListener 역할 : 클라이언트의 연결 수락, 클라와 서버 계속해서 데이터 전송할 수 있게 tcpClient객체 생성
- .TcpListener는 한개이지만 TcpClient는 여러 개 요청들어온 클라이언트 개수만큼 존재한다.
- (1) tcpListener가 TcpClient를 클라가 요청시 연결해준다.
- (2) tcpClient 를 통해 서버 클라가 데이터 주고받는부분
- 스레드 대상
- 클라이언트의 연결 수락부분
- tccpClient tcpClient = tcpListener.AcceptTcpClient();
- 데이터를 주고받는 부분
- 서버 스레드 구조
- TcpClient 일대일 구조 스레드로 생성
- 클라이언트 한개랑 서버스레드 2개
- 2개인 이유 : 연결용 , 데이터 송수신용 이렇게 두개
- 서버 스레드 구조 요약
728x90
'기타 공부 기록 > csharpnetwork인강' 카테고리의 다른 글
동기화(1/2) (0) | 2022.01.24 |
---|---|
콘솔코드를 윈도우 코드로 변환(3/3) ~ 스레드(1/2) (0) | 2022.01.19 |
콘솔코드를 윈도우 코드로 변환(2/3) (0) | 2022.01.17 |
콘솔코드를 윈도우 코드로 변환(1/3) (0) | 2022.01.13 |
네트워크 클래스 (5/5) (0) | 2022.01.13 |