1 / 17

Chapter 8 Advanced Concept

Chapter 8 Advanced Concept. 소켓 프로그래밍. Advanced Concept. 소켓 옵션 소켓 예외 로깅. 소켓 옵션. 소켓 옵션 소켓의 작동을 제어하는 속성 높은 레벨의 소켓 추상 클래스에서는 직접 접근 불가 Socket 클래스에서 제공되는 두 개의 소켓 옵션 메서드 GetSocketOption () – 소켓 옵션의 값을 읽어옴 SetSocketOption () – 소켓 옵션의 값을 설정 소켓 옵션 메서드가 가지는 두 개의 필수 인자 SocketOptionLevel

pilis
Download Presentation

Chapter 8 Advanced Concept

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 8Advanced Concept 소켓 프로그래밍

  2. Advanced Concept • 소켓 옵션 • 소켓 예외 • 로깅

  3. 소켓 옵션 • 소켓 옵션 • 소켓의 작동을 제어하는 속성 • 높은 레벨의 소켓 추상 클래스에서는 직접 접근 불가 • Socket클래스에서 제공되는 두 개의 소켓 옵션 메서드 • GetSocketOption()– 소켓 옵션의 값을 읽어옴 • SetSocketOption()– 소켓 옵션의 값을 설정 • 소켓 옵션 메서드가 가지는 두 개의 필수 인자 • SocketOptionLevel • 소켓 옵션의 설정 적용 범위를 정의 • SocketOptionName • 적용할 옵션의 이름을 의미 • 예제 프로그램 : MulticastSenderOpt.cs, MulticastReceiverOpt.cs

  4. 소켓 옵션 • SocketOptionLevel

  5. 소켓옵션 • SocketOptionName

  6. 소켓 예외 • SocketException클래스 • System.Net.Sockets네임스페이스는 소켓 오류 발생 시에 throw 되는 SocketException 클래스를 제공 • 에러코드는 Winsock 에러코드에서 유래 • 에러코드를 이용하여 소켓 에러를 처리 할 수 있음

  7. 소켓 예외 • Winsock 에러 코드

  8. 소켓 예외 • Winsock 에러 코드

  9. 소켓 예외 • Winsock 에러 코드

  10. 로깅 • 프로그램이 어떠한 에러를 가지고 있을 경우에 에러를 조사하고자 하는 프로그래머에게는 최종사용자를 위해 출력된 메시지만으로는 정보가 충분하지 않음 • 로깅 • 사용자가 프로그램을 사용하는 동안 디버깅에 관한 추가 정보는 따로 로그파일에 저장 • 로깅 구현의 어려움 • 소켓 프로그램과 파일 로깅에 영향을 줄 수 있는 수많은 요소들을 고려해야 하기 때문 • 해결 - NLog • 쉽고 간단하게 사용할 수 있는 로깅 라이브러리

  11. 로깅 • NLog • .NET을 위해 만들어진 오픈 소스 로깅 API • 콘솔 로깅과 파일 로깅 기능을 프로그램에 추가할 수 있음 • http://www.nlog-project.org/에서 무료로 다운로드 가능 • NLog의 사용 • NLog인스톨 후, 로깅API를 사용하기 위해 솔루션 탐색기에서 Add Reference (참조 추가)를해주어야 함 • .NET 탭에서 NLog라이브러리를 찾아서 추가 • .NET 탬에서NLog라이브러리가 보이지 않을 경우, Browse(찾아보기)를 통해 직접 NLog.dll파일을 찾아서 추가

  12. 로깅 • 참조 추가 (Add Reference)

  13. 로깅 • 프로그램 내에 NLog로깅 기능을 구현하기 위한 설정파일 정의 • 우선 솔루션 탐색기에서 프로젝트에 새로운 항목을 추가하여 텍스트파일을 생성 • 아래와 같은 XML 문법을 사용하여 설정파일을 작성 • 작성한 설정 파일은 파일속성을 통해 Copy to Output Directory (출력 디렉터리로 복사) 항목을 Copy always (항상 복사)로 설정 <?xmlversion="1.0" encoding="utf-8" ?> <nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <targetname="file" xsi:type="File" fileName="log.txt" /> </targets> <rules> <loggername="*" minlevel="Debug" writeTo="file" /> </rules> </nlog>

  14. 로깅 • 설정파일 속성 변경

  15. 로깅 • 프로젝트에 설정파일 추가가 완료되면 소스코드에서 로거를 사용할 수 있음 • 프로그램의 소스코드 내에서 로거 초기화

  16. 로깅 • Logger객체를 생성한 후로는 로거에 메시지를 추가할 수 있음 • 로그 엔트리를 추가할 때에는 로그레벨을 선택하여 추가할 수 있음 • 로그레벨 • 메시지의 의도나 심각성을 나타내기 위해 사용 • 나중에 프로그램의 실행흐름을 검토할 때에 메시지를 분류하기 위한 효과적인 방법이기도 함 • 로그레벨은 설정파일의 설정을 통해서 각각 다르게 처리할 수 있음 • 예제 프로그램 : POP3ClientLog.cs

  17. 로깅 • NLog로그 레벨

More Related